Android UIAutomator自動化測試


描述:UiAutomator接口豐富易用,可以支持所有Android事件操作,事件操作不依賴於控件坐標,可以通過斷言和截圖驗證正確性,非常適合做UI測試。 UIAutomator不需要測試人員了解代碼實現細節,屬於功能和黑盒測試。測試代碼結構簡單,編寫容易,學習曲線低。基於JAVA,一次編譯可以運行於所有Android設備。

使用限制:uiautomator是一個包含一套UI測試API,和支持運行測試程序的JAR包。該JAR包位於sdk/platforms/android-*/uiautomator.jar. 使用時需要注意自己的SDK版本需要大於16, SDK Tools版本需要大於21.

 

Uiautomator使用步驟:

1、 在Eclipse中,新建java項目“CalculatorAutoTest”;

2、 右鍵java項目->構建路徑->配置構建路徑->庫->添加庫->選擇JUnit,下一步->選擇Junit4->完成;

3、 添加必要的Jar包:右鍵java項目->構建路徑->配置構建路徑->添加外部JAR->選擇sdk/platforms/android-*/目錄下的uiautomator.jar和android.jar,路徑中的*請使用自己以下載的最新版本;

4、 在java項目中新建類CalTest繼承UiAutomatorTestCase;

代碼:目前用於項目的自動化測試代碼。

//進行自動化測試    
publicvoid testDemo() throws UiObjectNotFoundException{
//        UiScrollable appview = new UiScrollable (new UiSelector().className("android.view.View").instance(0));
//        UiObject openapp = appview.getChildByText(new UiSelector().className(android.widget.TextView.class.getName()) , "Biohop");
//        openapp.clickAndWaitForNewWindow();
while(true){
UiObject  TestLinearlayout=new UiObject(new
UiSelector().resourceId("com.android.test:id/mainTesting"));
TestLinearlayout.click();
        sleep(1000);
        UiObject  TestingToNamelayout=new UiObject(new UiSelector().resourceId("com.android.test:id/testingToName_go_linearLayout"));
        TestingToNamelayout.click();
        sleep(1000);
        UiObject  QRlayout=new UiObject(new UiSelector().resourceId("com.android. test:id/DataMatrixSure_linearlayout"));
        QRlayout.click();
        sleep(28000);
        UiObject  TestResultlayout=new UiObject(new UiSelector().resourceId("com.android. test:id/testingTimeCountSure_Linearlayout"));
        TestResultlayout.click();
        sleep(1000);
        UiObject    TestResultDialog=new UiObject(new UiSelector().resourceId("com.android.test:id/systemSetDialog_close"));
        TestResultDialog.click();
        sleep(1000);
        }
    }

5、 進入cmd命令行管理器:進入sdk/tools所在的目錄,鍵入

-> d:

-> cd Android\android-sdk-windows\tools

6、 查看當前sdk中,sdk的所有版本信息,在tools目錄下,鍵入:

-> android list target 

7、 目的是為了知道相應版本的id號,同時不僅僅UIAutomator需要sdk4.1或以上版本的支持,同時如果你需要通過UI控件的id進行UI識別,那么所選擇的sdk,需要API Level 18以上的版本,所以這里我選擇了id=7的sdk版本。

8、 創建打包測試代碼的Build腳本。通過如下命令來生成Build腳本:

<android-sdk>/tools/android create uitest-project -n <name> -t 1 -p <path>

其中:<name>是包含測試代碼的項目名稱,<path>是包含測試代碼的項目文件路徑。-t后面的1是Android sdk版本id。在cmd中鍵入:

-> android create uitest-project -n CalculatorAutoTest -t 7 -p D:\workspace\CalculatorAutoTest

9、 在命令行中,進入CalculatorAutoTest項目所在文件夾,並使用ant工具對build.xml進行編譯,另ant編譯工具需要自行安裝和配置環境變量

-> ant build

10、下面還需要將這個jar文件拷貝到手機的 /data/local/tmp/ 目錄中,拷貝操作可以通過一下命令實現:

-> adbpush D:/workspace/CalculatorAutoTest/bin/CalculatorAutoTest.jar  /data/local/tmp/

11、 最后運行jar文件:下面“CalTest”為類CalTest,有包名的要將包名也寫上

-> adb shell uiautomator runtest CalculatorAutoTest.jar -c CalTest

\

12、uiautomator代碼解析網站:http://techgogogo.com/2015/01/uiautomator%E5%AE%9A%E4%BD%8Dandroid%E6%8E%A7%E4%BB%B6%E7%9A%84%E6%96%B9%E6%B3%95%E5%AE%9E%E8%B7%B5%E5%92%8C%E5%BB%BA%E8%AE%AEappium%E5%A7%8A%E5%A6%B9%E7%AF%87/

配置參考網站:http://www.it165.net/pro/html/201409/22071.html

13、使用命令:adb shell uiautomator runtest CalculatorAutoTest.jar -c CalTest對程序進行測試,必須要將USB連接上電腦測試程序才能運行。斷開USB連接,測試也能夠運行的方法:使用命令:adb shell uiautomator runtest CalculatorAutoTest.jar--nohup -c CalTest


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM