首先,由壹個BUG引起的問題
如果說R&D過程中存在BUG:“手機語言不斷切換時出現屏幕現象”。這個問題怎麽驗證?我認為最好的方法是自動測試。
那麽,自動化測試可以完成哪些任務呢?
簡單地說,那些重復的測試可以通過自動化來完成:
1,設置手機語言
2.添加、刪除和收集聯系人。
3.撥號並掛斷
4.甚至發短信,收短信。
如果妳需要以上功能,那就開始自動化之旅吧。
二、Android自動化測試簡介
Android自動化測試主要分為Monkeyrunner、Rubotium、UiAutomator、Monkey(在我看來這個不算)等等。主要特點:
1,Monkeyrunner:優點:操作最簡單,可以記錄測試腳本,可視化操作;缺點:主要生成坐標的自動運算,不可移植,功能最有限;
2.Rubotium:主要用於自動測試APK。APK可以有源代碼,也可以沒有源代碼,功能強大;缺點是操作針對APK,需要重簽(帶工具),操作相對復雜;
3.UiAutomator:優點:所有操作均可自動化,操作簡單;缺點:安卓版本需要高於4.0,不能按控件id操作。相對來說,功能有限,但也夠用;
4.猴子:準確的說,這不是自動化測試,因為它只能產生隨機事件,不能按照既定步驟進行;
從上面的介紹我們可以得出結論,要測試壹個APK,可以選擇Rubotium;測試過程可能涉及多個apk,所以選擇UiAutomator;壹些簡單的測試,選擇Monkeyrunner;
本文主要介紹UiAutomator的使用。
第三,環境建設
3.1,先決條件:
1、JDK
2.SDK(API高於15)
3.Eclipse(安裝ADT插件)
4.ANT(用於編譯和生成jar)
3.2、簡要步驟:
1.安裝JDK並添加環境變量。
安裝後,壹定要通過JAVA_HOME添加環境變量,即先建立JAVA_HOME變量,然後添加% JAVA _ HOME % \ bin
2.添加SDK環境變量。
壹定要先建立ANDROID_HOME,然後在路徑中添加% ANDROID _ HOME % \ tools
3.安裝Eclipse和ADT插件。
4.安裝ANT工具並添加環境變量。
另外,請確保首先建立%ANT_HOME%變量,然後將%ANT_HOME%\bin添加到路徑中。
四、詳細操作
4.1,編制項目
用Eclipse創建壹個新的Java項目。註意不是安卓項目!
4.2,添加JUnit庫
下壹個-& gt;庫-& gt;添加庫
4.3.添加Android庫
添加外部jar:
找到路徑Android-SDK \ platforms \ Android-17 \並添加以下android.jar和uiautomator.jar:
添加完所有庫後,應該是這樣的:
4.4.在src中添加包,然後添加類文件。
文件內容是:
[java]查看純文本
包com
導入com . Android . ui automator . core . ui object;
import com . Android . ui automator . core . uiobjectnotfoundexception;
導入com . Android . ui automator . core . ui scrollable;
導入com . Android . ui automator . core . ui selector;
導入com . Android . ui automator . test runner . uiautomatortestcase;
公共類Runner擴展UiAutomatorTestCase {
public void testDemo()引發UiObjectNotFoundException {
getUiDevice()。press home();
//進入設置菜單。
ui object setting app = new ui object(new ui selector()。text("設置"));
setting app . click();
//睡眠3秒鐘
嘗試{
thread . sleep(3000);
} catch(interrupted exception e 1){
// TODO自動生成的catch塊
e 1 . printstacktrace();
}
//輸入語言和輸入法設置
ui scroll able setting items = new ui scroll able(new ui selector()。可滾動(true));
ui object languaandinputitem = setting items . getchildbytext(
新UiSelector()。文本("語言& amp輸入")、"語言& amp輸入”,真);
languageandinputitem . clickandwaitfornewwindow();
}
}
上面的項目路徑在e:\workspace\AutoRunner,類的全名是com。Runner至於具體功能,我們現在已經不關心了。
4.5.找到SDK ID
CMD進入\Android-sdk\tools\目錄並運行命令:
android列表
查看android版本對應的SDK的ID值,目前為60;
4.6、創建壹個構建文件
仍然在\Android-sdk\tools\目錄中,運行命令:
Android create ui test-project-n & lt;名稱& gt-t & lt;Android-SDK-ID & gt;-p & lt;路徑& gt
例如:
Android create ui test-project-n AutoRunner-t60-p e:\ workspace \ AutoRunner
上面的名字是以後生成的jar包的名字,可以自己定義。android-sdk-ID就是上面看到的6;Path是Eclipse創建的新項目的路徑;運行該命令後,將在項目的根目錄中生成build.xml文件。如果沒有,檢查上述步驟。
4.7.編譯並生成jar
CMD進入項目的項目目錄,然後運行ant build,會使用ant編譯生成jar。如果成功,將會提示您:
然後jar文件將在bin目錄中生成。
4.8.推動並運行jar。
亞行推送<。Jar文件路徑>;數據/本地/tmp
adb shell uiautomator運行測試<。Jar文件名>-c & lt;項目中的類名,包括包名>;
例如:
ADB push e:\ workspace \ AutoRunner \ bin \ AutoRunner . jar data/local/tmp
ADB shell ui automator runtest autorunner . jar-c com。跑步者
然後妳可以看到手機會自動按照Runner中的步驟進行操作。具體效果是進入設置菜單,然後進入“語言和輸入法”菜單。
動詞 (verb的縮寫)代碼分析
先從幾個最重要的對象來介紹吧。
5.1,UiDevice對象
getUiDevice()的方法可以獲取UiDevice的壹個對象,通過它可以完成設備的壹些動作:
單擊(整數x,整數y)
-單擊由(x,y)指示的像素。
按Back()
按刪除()
按回車鍵()
按Home()
按菜單()
按搜索()
-單擊相應的按鈕。
喚醒()
-手機處於離屏狀態時,喚醒屏幕解鎖。
滑動(開始、開始、結束、結束、步驟)
-在手機上滑動,從(startX,startY)到(endX,endY)。步數表示滑動距離分幾步完成,數字越少,滑動範圍越大。
setOrientationLeft()
setOrientationRight()
-將手機轉向相應的方向。
setOrientationNatural()
-將手機的旋轉狀態恢復正常。
5.2.UiSelector對象
這個賓語可以理解為條件賓語,描述壹個條件。經常和UiObject壹起使用,獲取壹些(壹些)符合條件的控件對象。
選中(布爾型值)
-描述檢查狀態為val的關系。
類名(類名)
-描述壹個名為className的對象關系。
可點擊(布爾型值)
/g 19920917/文章/詳情/16131565