Uiautomator通過CTSHelper類查看完美報告
一.CTS下載配置
1.下載android-cts;
Cts官網下載地址:https://source.android.com/compatibility/cts/downloads.html(需要能上谷歌才能下載);
或從百度雲下載:鏈接:http://pan.baidu.com/s/1bpMdhj5密碼:k7np;大家根據自己手機版本下載只下載文件中android-cts-4.4_r4-linux_x86-arm文件即可;
2. CTS位置
下載下來之後解壓文件,將解壓後的android-cts放置在android-sdk路徑下:
3.建立run-cts.bat文件
在android-cts\tools下新建一個記事本,內容如下所示,最後保存爲run-cts.bat:
(以下都是基於4.4來說,5.0設置方式一樣,只是tools中的jar包數量不一樣)
(1)cd D:\javadev\android-sdk-windows\android-cts\tools //寫自己的tools路徑
(2)set path=D:\javadev\Java\jdk1.7.0_10;D:\javadev\Java\jre7\bin //寫自己當時jdk和jre的路徑
(3)java -cpcts-tradefed.jar;ddmlib-prebuilt.jar;hosttestlib.jar;junit.jar;tradefed-prebuilt.jar//輸入自己cts\tools下所有的jar文件名,中間以分號隔開;
(4)-DCTS_ROOT="D:\javadev\android-sdk-windows"com.android.cts.tradefed.command.CtsConsole //固定格式,中間寫自己的sdk路徑;
最後保存以上名爲run-cts.bat,以後就可以點擊直接啓動了;
4.啓動run-cts.bat
配置好之後,直接雙擊run-cts.bat,發現提示Unable tolocate adb.此時我們將android-sdk-windows\platform-tools目錄中的adb有關項全部粘貼過來,重新啓動run-cts.bat即可;
二.工程中CTS配置
1.下載CTSHelper.java類
可以從網上搜,要注意網上有的CTSHelper類中有錯,建議大家下載CTSHelper.java之後,先全面搜索(worksapec)如果搜到改成workspace;
網盤共享:http://pan.baidu.com/s/1bpMdhj5密碼:k7np (和cts文件夾都在一個分享中);
下載之後同樣方式放在我們項目的包下:
CTSHelper.java類中參數都不用設置;
2.修改TestClass中main方法
這次我們要通過cts去看測試結果,所以我們要修改一些TestClass中相應信息;
整個TestClass類中代碼,全部粘過去即可
package testPackage;
import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
public class TestClass extends UiAutomatorTestCase {
/*
* public void clickTimer() throws UiObjectNotFoundException {
* //通過text去定位手機界面的“時鐘” UiObject clock = new UiObject(new
* UiSelector().text("時鐘")); clock.click(); //點擊時鐘 }
*/
/*
* //通過UiAutomatorHelper方法去執行,在控制檯能看到各種信息 public static void main(String[]
* args) { // // 生成的包名,包名.類名;運行的測試用例,Android的編號 new
* UiAutomatorHelper("AutoRunner", "testPackage.TestClass", "clickTimer",
* "1"); }
*/
// CTS執行測試用 例不會按照順序執行,他會按照字母開頭去執行,所以我們故意把順序寫亂
public void testCaseB() {
UiDevice.getInstance().pressBack(); // 返回上一級
System.out.println("以上是返回上一級的意思");
}
public void testCaseD() {
UiDevice.getInstance().pressMenu();
System.out.println("以上是點擊菜單的意思");
}
public void testCaseC() {
UiDevice.getInstance().pressHome();
System.out.println("以上是點擊主頁的意思");
}
public void testCaseA() throws UiObjectNotFoundException {
// 通過text去定位手機界面的“時鐘”
UiObject clock = new UiObject(new UiSelector().text("時鐘"));
clock.click(); // 點擊時鐘
System.out.println("點擊手機界面的:時鐘;");
}
// 通過CTSHelper方法去執行,控制檯中看不到信息,cts調試main方法的參數配置信息
public static void main(String[] args) {
new UiAutomatorHelper("AutoRunner", "run.RunGld", "lk_Case_Game_Recommend", "1");
String workspase, className, jarName, androidId, sdkpath;
workspase = "F:\\lianxi\\workspace\\GldProject"; // 工程路徑,右擊項目名-Properties,查看路徑,注意路徑寫雙斜槓
className = "testPackage.TestClass"; // 包名.類名
jarName = "AutoRunner"; // 要生成的jar包名字
androidId = "1"; // android list的id值
sdkpath = "D:\\javadev\\android-sdk-windows"; // android-skd的路徑,注意路徑間是雙斜槓
CtsHelper cts = new CtsHelper(workspase, className, jarName, androidId, sdkpath);
cts.setDevices("W8AEVGTCZT9SMNIF"); // 真機設備信息,從cts\tools目錄下運行run-cts.bat查看設置信息
cts.runTest();
}
}
(1)main方法中workspace值
右擊工程名字GldProject,選擇Properties-Location,就是工作空間地址;注意使用路徑時,中間採用雙斜槓:
(2)main方法中cts.setDevices值
找android- cts\tools中運行run-cts.bat,啓動之後就能看到設備信息:
3.運行測試用例TestClass類
TestClass當前頁右擊-RunAs-Java Application;
4.控制檯運行結果
從結果中我們可以很清楚看到,執行的測試用例以及測試結果,同時我們還可以在本地看到device_logcat和host_log的日誌,報告中都詳細描述了。
將file://地址粘貼到瀏覽器,我們就能很清楚的看到測試報告;
5.查看運行報告
將運行結果中file://粘貼到瀏覽器中,直接回車查看,見下: