當前位置:編程學習大全網 - 源碼下載 - uiobjectnotfoundexception什麽時候出現

uiobjectnotfoundexception什麽時候出現

互相學習android自動化測試,請關註我的微博:weibo.com/ganchaojiang壹、壹個BUG引發的問題如果研發過程中有壹個BUG:“不斷的切換手機語言出現花屏現象”。這個問題我們如何驗證呢?我想,最好的方式應該是自動化測試。那麽,自動化測試可以完成哪些任務呢?簡單的說,那些重復性的測試工作,都可以交給自動化完成:1、設置手機的語言2、添加、刪除、收藏聯系人3、撥號、掛斷4、甚至發送短信、收藏短信如果需要上面的功能,那麽就開始自動化之旅吧。二、Android自動化測試簡單介紹Android自動化測試主要分為Monkeyrunner、Rubotium、UiAutomator、Monkey(在我看來這個不算)等。主要特點:1、Monkeyrunner:優點:操作最為簡單,可以錄制測試腳本,可視化操作;缺點:主要生成坐標的自動化操作,移植性不強,功能最為局限;2、Rubotium:主要針對某壹個APK進行自動化測試,APK可以有源碼,也可以沒有源碼,功能強大;缺點是針對APK操作,而且需要對APK重新簽名(有工具),因此操作相對復雜;3、UiAutomator:優點:可以對所有操作進行自動化,操作簡單;缺點:Android版本需要高於4.0,無法根據控件ID操作,相對來說功能較為局限,但也夠用了;4、Monkey:準確來說,這不算是自動化測試,因為其只能產生隨機的事件,無法按照既定的步驟操作;由上面介紹可以有這樣的結論:測試某個APK,可以選擇Rubotium;測試過程可能涉及多個APK,選擇UiAutomator;壹些簡單的測試,選擇Monkeyrunner;本文主要介紹UiAutomator的使用方法。三、環境搭建3.1、必備條件:1、JDK2、SDK(API高於15)3、Eclipse(安裝ADT插件)4、ANT(用於編譯生成jar)3.2、簡要步驟:1、安裝JDK並添加環境變量。安裝後,壹定要通過JAVA_HOME的方式添加環境變量,即先建立JAVA_HOME變量,然後在path中添加%JAVA_HOME%\bin;2、添加SDK環境變量。壹定要先建立ANDROID_HOME,然後把%ANDROID_HOME%\tools添加到path中;3、安裝Eclipse,並安裝ADT插件。4、安裝ANT工具,並添加環境變量。同樣壹定要先建立%ANT_HOME%變量,然後在path中添加%ANT_HOME%\bin四、詳細操作4.1、建立工程用Eclipse新建JavaProject,註意,不是AndroidProject!4.2、添加JUnit庫next->Libraries->AddLibrary4.3、添加Android庫AddExternalJARs:找到路徑Android-sdk\platforms\android-17\下面的android.jar和uiautomator.jar添加進來:所有庫添加完應該是這個樣子:4.4、在src中添加包,然後添加class文件文件內容為:[java]viewplaincopypackagecom;importcom.android.uiautomator.core.UiObject;importcom.android.uiautomator.core.UiObjectNotFoundException;importcom.android.uiautomator.core.UiScrollable;importcom.android.uiautomator.core.UiSelector;importcom.android.uiautomator.testrunner.UiAutomatorTestCase;publicclassRunnerextendsUiAutomatorTestCase{publicvoidtestDemo()throwsUiObjectNotFoundException{getUiDevice().pressHome();//進入設置菜單UiObjectsettingApp=newUiObject(newUiSelector().text("Settings"));settingApp.click();//休眠3秒try{Thread.sleep(3000);}catch(InterruptedExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}//進入語言和輸入法設置UiScrollablesettingItems=newUiScrollable(newUiSelector().scrollable(true));UiObjectlanguageAndInputItem=settingItems.getChildByText(newUiSelector().text("Language&input"),"Language&input",true);languageAndInputItem.clickAndWaitForNewWindow();}}上面工程路徑在e:\workspace\AutoRunner,類全名為com.Runner,至於具體的作用我們現在不去關心。4.5、找到SDKIDCMD進入\Android-sdk\tools\目錄下,運行命令:androidlist查看對應android版本的SDK的ID值,當前是60;4.6、創建build文件仍然在\Android-sdk\tools\目錄下,運行命令:androidcreateuitest-project-n-t-p比如:androidcreateuitest-project-nAutoRunner-t60-pe:\workspace\AutoRunner上面的name就是將來生成的jar包的名字,可以自己定義,android-sdk-ID就是上面看到的6;path是Eclipse新建的工程的路徑;運行命令後,將會在工程的根目錄下生成build.xml文件。如果沒生成,檢查上面的步驟。4.7、編譯生成jarCMD進入項目的工程目錄,然後運行antbuild,將使用ant編譯生成jar,成功將會提示:然後會在bin目錄下生成jar文件。4.8、push並運行jaradbpushdata/local/tmpadbshelluiautomatorruntest-c比如:adbpushe:\workspace\AutoRunner\bin\AutoRunner.jardata/local/tmpadbshelluiautomatorruntestAutoRunner.jar-ccom.Runner然後就能看到手機會按照Runner中的步驟自動執行。具體效果就是,進入設置菜單,然後再進入“語言和輸入法”菜單五、代碼分析我們從幾個最重要的對象來介紹。5.1、UiDevice對象getUiDevice()的方法可以得到壹個UiDevice的對象,通過這個對象可以完成壹些針對設備的動作:click(intx,inty)----在(x,y)表示的像素地方點擊pressBack()pressDelete()pressEnter()pressHome()pressMenu()pressSearch()----點擊相應的按鍵wakeUp()----當手機處於滅屏狀態時,喚醒屏幕,並解鎖。swipe(startX,startY,endX,endY,steps)----在手機上滑動,從(startX,startY)到(endX,endY)。steps表示滑動的這個距離分為幾步完成,數目越少,滑動幅度越大。setOrientationLeft()setOrientationRight()----將手機向相應方向旋轉。setOrientationNatural()----將手機旋轉狀態回歸正常。5.2、UiSelector對象這個對象可以理解為壹種條件對象,描述的是壹種條件,經常配合UiObject使用,可以得到某個(某些)符合條件的控件對象。checked(booleanval)----描述壹種check狀態為val的關系。className(className)----描述壹種類名為className的對象關系clickable(booleanval)16131565

  • 上一篇:有哪些好的星際類的科幻電影推薦?
  • 下一篇:php 如何獲取電腦的標準碼
  • copyright 2024編程學習大全網