【轉】http://blog.csdn.net/pugongying1988/article/details/6976091
一、為什么需要兼容性測試(以下稱CTS)?
1.1、讓APP提供更好的用戶體驗。用戶可以選擇更多的適合自己設備的APP。讓APP更穩定。
1.2、讓開發者設計更高質量的APP。
1.3、通過CTS的設備可以運行Android market。
另外,CTS是免費的,而且很簡單。
二.CTS是開源的測試框架,使用它來測試你的設備是否具備兼容性。CTS主要包含兩個組件:
運行在PC上的測試框架組件。主要用來管理測試用例(test case)的執行。
運行在設備或模擬器上的測試用例。這些用例用Java寫成的APK文件。
三、工作流程
1、可以從源碼編譯CTS,也可以從網站下載編譯好的CTS
2、安裝配置CTS。
3、把設備連接到PC上。
4、運行CTS。CTS會把相應的測試用例(也就是一個APK文件)傳送到設備上並通過instrumentation運行,然后記錄運行結果,最后刪除測試用例。
所有的測試用例執行完畢后,可以參照測試結果重新調整或優化系統。然后繼續運行CTS測試。
5、測試通過以后,你可以把CTS生成的結果(就是result下面那個以測試時間命名的.zip文件)提交給cts@android.com。
四、目前的測試覆蓋面
目前,為了確保兼容,測試用例覆蓋了下面的這些范圍
1、Signature
對每個Android產品,都有一些XML文件來描述所有的公開API。CTS包含了一個工具來檢測這些API簽名中包含的API是否都在系統中被支持。
2、Platform
測試SDK文檔中描述的平台API,比如core libraries,Android Application Framework等。要求這些API可以提供:
正確的類、屬性、方法簽名、方法行為、錯誤參數處理方式
3、Dalvik VM
專門針對Dalvik Vm的測試。
4、Platform Data Model
平台通過ContentProvider提供給開發者使用的數據,比如:Contacts,Browser,Settings等。
5、Platform Intents
平台提供的用於核心功能的Intent。
6、Platform permission
平台提供的一些重要APP權限
7、Platform Resources
simple values,drawables,nine-patch,animations,layouts,styles and themes,loading alternate resources等
五、CTS搭建(Unbutu/Linux平台)
1. 下載CTS包http://source.android.com/compatibility/downloads.html
2. 在手機或者模擬器上安裝CtsDelegatingAccessibilityService.apk非必需
(1)$sudo ./adb install -r /home/tester/cts/android-cts/repository/testcases
/CtsDelegatingAccessibil
ityService.apk
(2)手機或模擬器設置Settings > Accessibility > Accessibility > Delegating Accessibility Service
3. 進入android/out/host/linux-x86/cts /android-cts/repository/tools目錄下,修改startcts腳本文件。將腳本中的SDK_ROOT該成自己的android SDK路徑.
$cd home/tester /cts/android-cts/repository/tools $vim startcts修改腳本中出現的第一個SDK_ROOT,如"SDK_ROOT=/home/tester/cts/android-sdk- linux_86"。
4. 執行startcts腳本。在執行CTS測試計划時(執行一段時間后,大於5分鍾)會出現沒有足夠權限啟動devices,使用$sudo ./startcts可解決該問題。
(Windows下配置好sdk和android開發環境后,可以直接通過java命令來執行cts測試:java -Xmx512M -cp D:\android-cts\tools\cts.jar;D:\android-cts\tools\hosttestlib.jar;D:\android-cts\tools\junit.jar;C:\Android\android-sdk\tools\lib\ddmlib.jar com.android.cts.TestHost D:\android-cts\repository\host_config.xml
如果使用的是android-cts-2.2_r4-x86.zip,-cp選項中需要多一個D:\android-cts\tools\lib\CtsTestAnnotationsHostLib.jar,可參考startcts腳本。)
5. 出現如下提示符表示啟動cts並連接設備成功。(紅色部分未deviceID,視設備號而定)
Android CTS version 2.3_r4
Device(emulator-5544) connected
cts_host > cts_host >
6. 在“cts_host >”提示符下輸入命令,以下為幾個常用的命令
help查看所有
exit退出
ls -p列出所有的測試包
ls --plan列出所有的測試方案
start --plan plan_name運行一個測試方案,如:start --plan CTS
start --plan plan_name --package package_name運行一個特定的測試包,如:start --plan CTS --package android.bluetooth
六、查看測試報告
運行測試時,在CTS運行界面能看到測試報告與運行狀況。測試完成后可在android-cts/repository/results/下生成詳 細的測試報告和一些附加信息,其中用日期和時間命名的文件夾下為所有的測試結果,同時文件夾也會被打成一個對應的.zip包方便提交。用瀏覽器打 開.xml文件(默認就是,直接雙擊)就可以查看所用的測試報告了。