1. 程式人生 > >Android CTS環境配置及基礎命令介紹(僅針對8.0)

Android CTS環境配置及基礎命令介紹(僅針對8.0)

環境配置

物理環境

藍芽 LE 信標

如果 DUT 支援藍芽 LE 功能,則應在與 DUT 的距離不超過五米的範圍內放置至少三個藍芽 LE 信標,以進行藍芽 LE 掃描測試。這些信標可以為任何型別,不需要進行配置或發射任何特定訊號,並且可以包括 iBeacon、Eddystone,甚至模擬 BLE 信標的裝置。

GPS/GNSS

如果 DUT 支援全球定位系統 (GPS)/全球導航衛星系統 (GNSS) 功能,需將 DUT 放在距離視窗足夠近的位置以使其可以直接接收到足夠強的 GPS/GNSS 訊號即可。

Tips:在進行 GPS 測試時,請確保網際網路連線設定未遮蔽 supl.google.com 的 7276 埠的連線。該埠將用於下載 GPS 輔助資料,以便在本地裝置上測試位置計算。

WLAN 和 IPv6

CTS 測試需要滿足以下要求的 WLAN 網路:支援 IPv6,可以將被測裝置 (DUT) 視為隔離客戶端,並可以連線到網際網路(Google)。隔離客戶端是一種配置,可使 DUT 無法接收子網路上的廣播/多網訊息;這種配置可通過 WLAN AP 配置或通過在未連線其他裝置的隔離子網路上執行 DUT 來實現。

如果您無法訪問原生 IPv6 網路、IPv6 運營商網路或 IPv6 VPN,以致無法通過基於 IPv6 的一些測試,則可以改為使用 WLAN 接入點和 IPv6 隧道。請參閱維基百科 IPv6 隧道代理列表

PC設定

1.1.1 ADB和AAPT

安裝最新的adb和aapt,並將這些工具的位置新增到計算機的環境變數中。

例如

export PATH=$PATH:$HOME/android-sdk-linux/build-tools/<version>

1.1.2 JDK

現在要求安裝jdk8,openjdk和sunjdk都可以

1.1.3 CTS檔案

下載CTS測試套件

下載CTS媒體檔案,Media相關測試需要用(日常使用1.4版本)

Android裝置設定

請注意正式送測版本一定是user版本(定位問題可使用userdebug版本)

準備UICC

a. 將裝置恢復出廠設定:設定 > 備份和重置 > 恢復出廠設定(刷機後的機器不用再次恢復出廠設定)

b. 將裝置的語言設定為英語(美國):設定 > 語言和輸入法 > 語言

c. 如果裝置具有 GPS 或 WLAN/行動網路功能,則開啟位置資訊設定:設定 > 位置資訊 > 開啟 (選擇高精度)

d. 插入sd卡,推薦class10且大於8GB(只有內部儲存可不插)

e. Settings > Display > Sleep should be set to “30 minutes” or the largest value

f. 測試前,手機應該回到Home介面

g. 寫入IMEI

h. 插入SIM卡並開啟資料流量

i. Settings > About phone > Status > My phone number檢視SIM卡號碼,如果看不到,需要將SIM卡號碼寫入到SIM中,目前知道小米手機可以直接寫入。

j. 連線到滿足以下要求的 WLAN 網路:支援 IPv6,能夠訪問Google網路(梯子)

k. 關閉鎖螢幕圖案或密碼:設定 > 安全 > 螢幕鎖定 > 無

l. 在裝置上啟用 USB 除錯:設定 > 開發者選項 > USB 除錯

m. 設定 > 日期和時間 > 使用 24 小時制 > 關閉(使用12小時制)

n. 設定 > 開發者選項 > 不鎖定螢幕 > 開啟

o. 啟動瀏覽器並關閉任何啟動/設定螢幕。

p. 將 CTS 媒體檔案複製到裝置上,

i. 執行 copy_media.sh:

l 要複製解析度不超過 720x480 的剪輯,請執行:./copy_media.sh 720x480

l 如果您不確定最大解析度,請嘗試執行 ./copy_media.sh all,以便複製所有檔案。

ii. 執行 copy_images.sh(建議在測試機內建儲存新建cts資料夾,講bbb_full和bbb_short)

執行CTS

解壓縮下載的CTS壓縮檔案

執行 ./android-cts/tools/cts-tradefed 進入cts命令列

下面是從android官網上摘抄下來的命令參考

主機 說明
help 顯示最常用命令的摘要
help all 顯示可用命令的完整列表
version 顯示版本。
exit 正常退出 CTS 控制檯。所有當前正在執行的測試完成後,控制檯將關閉。
執行 說明
run cts 執行預設的 CTS 計劃(即完整的 CTS 呼叫)。 在測試過程中,CTS 控制檯可以接受其他命令。 如果沒有連線任何裝置,CTS 桌上型電腦(或主機)將等待連線裝置後再開始測試。 如果連線了多臺裝置,則 CTS 主機將自動選擇一臺裝置。
--plan <test_plan_name> 執行指定的測試計劃。
--module/-m <test_module_name> [--module/-m <test_module2>...] 執行指定的測試類和/或方法。例如,run cts --module CtsGestureTestCases 會執行手勢測試模組(該命令可以簡化為 run cts -m Gesture)。 run cts -m Gesture --test android.gesture.cts.GestureTest#testGetStrokes會執行指定的包、類或測試。
--subplan <subplan_name> 執行指定的子計劃。
-- module/-m <test_module_name> -- test <test_name> 執行指定的模組並進行測試。例如,run cts -m Gesture --test android.gesture.cts.GestureTest#testGetStrokes 會執行指定的包、類或測試。
--retry 重新嘗試執行在以前的會話中失敗或未執行的所有測試。 使用 list results 獲取會話 ID。
--shards <number_of_shards> 將 CTS 執行分為指定數量的獨立塊,以便在多臺裝置上並行執行。
--serial/-s <deviceID> 在特定裝置上執行 CTS。
--include-filter <module_name> [--include-filter <module2>...] 僅使用指定的模組執行。
--exclude-filter <module_name> [--exclude-filter <module2>...] 執行時排除指定的模組。
--log-level-display/-l <log_level> 以顯示給 STDOUT 的最小指定日誌級別執行。有效值:[VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT]。
--abi <abi_name> 強制要求測試在給定的 ABI(32 或 64)上執行。預設情況下,CTS 會為裝置支援的每個 ABI 執行一次測試。
--logcat、--bugreport 和 --screenshoot-on-failure 顯示更詳盡的故障資訊並幫助進行診斷。
--device-token 指定具有給定令牌的給定裝置,例如 --device-token 1a2b3c4d:sim-card.。
--skip-device-info 跳過收集裝置相關資訊的過程。注意:執行 CTS 以尋求批准時,請勿使用此選項。
--skip-preconditions 繞過對裝置配置的驗證和設定,例如推送媒體檔案或檢查 WLAN 連線。
列表 說明
list modules 列出儲存區中的所有可用測試模組。
list plans 或 list configs 列出儲存區中的所有可用測試計劃(配置)。
list subplans 列出儲存區中的所有可用子計劃。
list invocations 列出裝置上當前正在執行的“執行”命令。
list commands 列出當前在佇列中等待分配給裝置的所有“執行”命令。
list results 列出當前儲存在儲存區中的 CTS 結果。
list devices 列出當前連線的裝置及其狀態。 “可用”裝置是可正常執行的空閒裝置,可用於執行測試。 “不可用”裝置是可通過 adb 檢視但不響應 adb 命令的裝置,不會分配用於測試。 “已分配”裝置是當前正在執行測試的裝置。
轉儲 說明
dump logs 為所有正在執行的呼叫轉儲 tradefed 日誌。
新增 說明
add subplan --name/-n <subplan_name> --result-type pass | fail | timeout |notExecuted 建立從上一會話衍生的子計劃;此選項會生成可用於執行測試子集的子計劃。 唯一的必選項是 --session。其他選項都是可選的,但如果選用這些選項,必須後跟一個值。--result-type 選項可重複使用;例如 add subplan --session 0 --result-type passed --result-type failed 是有效的。

一些命令示例

Tips:

我們測試的時候有兩個引數比較重要

a. -–skip-preconditions 跳過一些預置條件的檢查,可以減少測試的時間

b. –-skip-device-info 跳過手機資訊的收集,可以減少測試的時間

c.--disable-reboot 忽略手機重啟

  1. 完整的跑一遍CTS測試

run cts --plan CTS

  1. 單獨跑一個模組

run cts --m CtsAppSecurityHostTestCases --skip-preconditions --disable-reboot

  1. 單獨跑某一個測試方法

run cts -m 模組名  -t 測試方法 --skip-preconditions --disable-reboot

  1. 執行以前的會話中失敗或未執行的所有測試

run cts --retry --skip-preconditions --disable-reboot

(如果測試機版本切換了是不能夠使用retry命令的)

  1. 建立從上一會話衍生的子計劃

參照表中add subplan命令

  1. 檢視所有的subplan

list subplans

  1. 執行子計劃

run cts --subplan <subplan_name>

Reference:

轉載自:Terryho 連結:https://www.jianshu.com/p/a6feab7b468a 來源:簡書