常用的Android自動化測驗框架包括UIAutomator、Appium以及Monkeyrunner等;其中,UIAutomator是谷歌在發布Android4.1版本時推出的一款基于Java語言的UI測驗框架,由此,UIAutomator只能運行在4.1及其以上版本中,本篇文章將為大家介紹如何搭建基于Java+UIAutomator的測驗環境,
一、UIAutomator簡介
首先,作為Google自家推出的一款開源的UI自動化測驗框架,其穩定性和可靠性可以得到極大的保障,運行時也有更多的權限,其次,UIAutomator可以跨行程操作,運行速度較快;
但是UIAutomator不支持Android4.1以下的版本;不支持webview,無法對瀏覽器應用進行測驗;不支持除Java之外的其他編程語言,相對于Appium框架,這一特點具有一定的局限性(Appium支持幾乎所有的編程語言),
二、UIAutomator常用測驗類
1、UiAutomatorTestCase:這個類對外提供setup、teardown等,以便初始化用例、清除環境等,所以我們在撰寫測驗用例時一般都要繼承這個類,這樣就可以直接使用它的一些方法和Junit單元測驗框架中的Assert斷言機制,
2、UiObject:UiObject可以代表頁面的任意元素,但是需要UiSelector這個類來輔助定位到元素的各種屬性,
3、UiSelector:主要是通過UiSelector物件去定位UI元素,如果發現多個滿足條件的控制元件則會回傳第一個控制元件,在使用UiSelector的時候可以組合使用多個屬性來定位具體的控制元件,還可以使用childSelector()函式來嵌套UiSelector物件,
4、UiDevice:在測驗時我們可以通過 getUiDevice() 方法來實體化UiDevice物件,實作對設備的各種操作,如喚醒螢屏,鎖屏,點擊Home, Back,Menu鍵等操作,
5、UiScrollable:UiScrollable 用來表示可以滑動的界面元素
三、基于Java+UIAutomator的測驗環境準備
1、安裝JDK,添加環境變數
2、SDK環境配置
(platforms至少包含 android-23)SDK下載地址:http://sdk.android-studio.org/,下載完成后直接解壓即可,配置環境變數:在系統變數下點擊新建ANDROID_HOME,其中變數值為SDK解壓后的路徑,如下:
在path中添加:%ANDROID_HOME%\tools和%ANDROID_HOME%\platform-tools,如下圖所示:
打開cmd命令,輸入adb,如果提示Android Debug Bridge version xxx,則證明安裝成功,
3、安裝eclipse,用于代碼撰寫
4、配置Ant環境變數
四、基于Java+UIAutomator的測驗框架搭建
1、新建Java工程
啟動eclipse,選擇File-New-JavaProject,如下圖所示:
輸入Project Name后點擊finish即可;
2、添加測驗類別庫:
在工程名稱上點擊右鍵,選擇Bulid Path->Configure?Bulid Path
添加Android庫:在build path界面,點擊Add External JARS,添加android.jar,uiautomator.jar兩個jar包即可(路徑:sdk\platforms\android-23)
添加junit庫:依次點擊Libraries-Add Library-Junit-Junit4-Finish,添加AddLibrary,選擇JUnit之后再選擇JUnit4,點擊Finish;
3、添加包名和類名
點擊src右鍵,依次點擊New-Package,輸入包名com.test即可;
選中包名,打開右鍵選單,依次點擊New-class,新建class;
完成以上步驟后,就可以在類中添加代碼,進行自動化測驗了,
4、示例代碼撰寫
以下方法中實作了啟動指定APP(通過位置資訊啟動),并點擊某個按鈕的功能:
以上,基于Java+UIAutomator的自動化測驗框架搭建完成,之后根據自己的需要添加測驗用例即可,
五、代碼運行
1、查找SDK的id
打開CMD命令視窗,使用cd命令進入到自己計算機的sdk\tools\目錄下,輸入android list(由于建立工程時我選擇是Android-23,所以我要找Android-23的id)
2、創建build檔案
進入sdk\tools\目錄,輸入如下命令:android create uitest-project –n-t-p,其中,是將要生成的jar包名稱;是工程的路徑地址;是上一步中通過android list查看到的;
例如:我新建的工程在D:\eclipse\ AndroidTest目錄下,通過Android list查詢到的id為1,生成名稱為AutoTest的jar包,運行如下命令:android create uitest-project -n AutoTest-t 1 -p D:\eclipse \AndroidTest
即可在工程的根目錄下生成build.xml檔案:
3、編譯生成jar包
打開cmd命令,進入工程目錄,運行ant bulid命令后,在工程的bin目錄下生成jar包:AutoTest.jar
4、將jar包push到手機
在cmd視窗中執行如下命令即可:adb pushdata/local/tmp
5、運行jar檔案
在cmd視窗中執行如下命令:adb shell uiautomator runtest-c <包名.類名#方法名>
如此,就可以執行指定的方法,實作自動化測驗,
六、UIAutomator快速編譯
以上,我們搭建了基于Java+UIAutomator的自動化測驗框架,并介紹了如何進行代碼運行,在代碼除錯階段,我們可以通過命令單獨運行某個方法,查看運行結果是否符合預期,但是這個辦法明顯不適用于我們的自動化測驗程序,那么,我們接下來要做的,就是讓所有的用例一起運行,實作無人值守,步驟如下:
1、完成所有用例的撰寫和除錯,保證每條用例能夠正常執行
2、通過代碼運行中介紹的步驟1-5,生成可運行的jar檔案
3、新建Java工程,將所有用例對應的類名和方法名寫成組態檔,通過遍歷組態檔,指定需要執行的方法,進而實作自動化運行,輸出測驗報告,具體思路如下:
將用例對應的類名和方法名寫成組態檔;將如下所示adb命令中的類名和方法名寫成變數
遍歷組態檔,指定運行方法,將以上adb命令寫成bat檔案,運行bat檔案即可,
在運行程序中,設定監聽,將錯誤日志輸出到測驗報告中,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/249355.html
標籤:其他
