一、什么是兼容性測試?
1)為用戶提供最好的用戶體驗,讓更多高質量的APP可以順利的運行在此平台上
2)讓程序員能為此平台寫更多的高質量的應用程序
3)可以更好的利用Android應用市場
二、CTS覆蓋領域
1)簽名測試:針對每個Android正式版,都將附帶一系列XML文檔對所有的公共API簽名進行描述。CTS將檢查這些簽名是否適用於該設備,並保存其結果。
2)平台API測試:測試SDK中平台核心庫和Android應用程序框架的API是否正確
3)Dalvik虛擬機測試:集中測試Dalvik虛擬機
4)平台數據模型測試:測試通過content provides 暴露給程序員的平台數據模型中的核心部分,如聯系人,瀏覽器和設置等應用
5)平台intents測試:測試在SDK中定義的可用平台intents中的核心部分
6)平台權限測試:測試在SDK中定義的可用平台權限中的核心部分
7)平台資源測試:測試在SDK中定義的可用資源類型中的核心部分,如simple values/drawables/nine-patch/animations/layouts/styles/themes
三、CTS運行前的准備工作
1)熟悉CDD(Compability Definition Document),兼容性規范文檔。CTS所測試的一切為了確保設備符合該規范,所以我們測試之前必須要對CDD中提出的要求非常熟悉才行
2)CTS(Compability Test Suite)CTS的測試套件,用於實際測試運行所用
3)CTS Verifier 的應用,它將直接安裝在手機上,主要用於硬件及CTS測試套件難以測試的一些偏功能型的接口測試,比如Camera、GPS和各種sensor等
四、下載地址:
http://source.android.com/compatibility/downloads.html
這里由於天國對網絡的限制,上面網址訪問不了,建議注冊一個GreenVPN,非常好用
http://gjsq.me/16647406 (合作推廣鏈接,並非釣魚網站)注冊跳轉頁面
五、CTS運行前配置
1)確保Text 和 Speech文件都被安裝到設備中。可到Setting-->Speech synthesis ——>Install voice data 中檢查
2)確保設備包含外置SD卡且該卡為空
3)運行CTS前需要回復出廠設置
4)確保屏鎖已經關閉
5)確保未知資源已開啟
6)確保USB調試選項已被勾選
7)確保屏幕常亮已被勾選
8)確保Allow mock location已被勾選
9)確保設備已連接上可用的Wi-Fi網絡
10)確保語言已經切換成英文
11)確保當前屏幕為主頁
12)當設備在運行測試用例是,不允許再動它
13)當CTS運行時不允許按下設備上任何物理按鍵,按下按鍵可能會干擾正常測試,從而導致測試失敗
14)在執行CtsDelegatingAccessibilityService應用:
在repository/testcases文件夾下
打開服務 Setting>Accessibility>Delegating Accessibility Service
15)在執行administration測試包前需要執行以下兩步
安裝CtsDeviceAdmin應用
在repository/testcases文件夾下
打開服務:Setting>Security>Device Administrators >Enable
16)在執行CTS media壓力測試前需將CTS media 問價拷貝到設備中,並進行調整
六、CTS的命令及運行
輸入命令進入cts-tradefed文件所在的路徑,確保一台設備已連接,在CTS命令控制台下課運行CTS腳本,如運行cts-tradefed的方式為:
#./cts-tradefed
1)查看執行測試計划
Cts-ft>list plans //簡化版 l p
不同版本測試計划基本一樣,可分七種
CTS:運行所有的兼容性測試用例,目前暫時不包括性能測試用例
Signature:對簽名的所有的公共接口進行驗證
Android:對Android的接口進行測試
Java:對Java核心庫進行測試
VM:對Dalvik虛擬機進行測試
RefAPP:對參考應用進行測試
Performance:對性能進行測試
不明白可以執行help命令
2)查看有哪些測試包
Cts-tf>list packages //簡化版 l packages
執行某個測試包
Cts-tf>run cts --package<package_name>
測試util包
Cts-tf>run cts --package android.util
3)單獨測試某個用例
Cts-tf>run cts -c <package name> -m <testcase_name>
4)查看結果
Cts-tf>list result //簡化版 l r
測試報告會在repository/results文件夾下
5)如何對失敗的測試項進行再測試
Cts-tf>l r //查看測試結果
其次根據start time時間,確定你要的任務的session編號例如20
命令:
Add derivedplan --plan plane_name -s session_id -r [pass/fail/notExecuted/timeout]
例如:
Add derivedplan -plan plane_name -s 20 -r fail
最后執行命令開始測試
Run cts -plan <plane_nasme>
備注:后期再編輯添加實踐圖片進行詳解
最后感謝聯想許奔的《深入理解Android自動化測試》
