Android 通訊測試套件 (ACTS) 會執行連線堆疊 (例如 Wi-Fi、藍牙和行動網路) 的自動化測試。測試工具需要 adb 和 Python。該工具位於 tools/test/connectivity/acts
中。
本頁面說明如何為擁有兩支手機的使用者,執行 Android 開放原始碼計畫 (AOSP) 中所提供的基本電話測試。
必要條件
如要執行 ACTS 通訊測試,您必須能存取完整的 Android 存放區,並在要測試的裝置上安裝 userdebug 版本。
下載 Android 存放區
按照「下載原始碼」中的操作說明,在您要測試的裝置具有 USB 連線的機器上下載 Android 存放區。
- Android 開放原始碼計畫是不斷擴增的數 GB 程式碼集。請據此調整您對下載時間的預期。
- 如果機器有大小限制,請在
repo init
指令中加入--depth=1
。
- 如果機器有大小限制,請在
- 如要取得 ACTS 工具的未來更新內容,請前往 Android 根目錄:
- 使用
repo sync tools/test/connectivity
- 和
repo sync external/sl4a
- 使用
驗證裝置上的 userdebug 版本
在測試裝置上安裝 Android 的 userdebug 版本。
- 按照「建構 Android」一文中的指示建構存放區。
- 依照「刷新裝置」中的說明刷新裝置。
adb shell getprop ro.build.type
指令應傳回userdebug
。- 如果無法使用
ro.build.type
,則使用者偵錯版本會允許以根層級 (終端機#
) 執行 ADB 殼層。
建構及安裝 SL4A
如要建構及安裝 Android 適用的指令碼處理層 (SL4A),請按照「Android 適用的指令碼處理層」中的指示操作。「預設將 SL4A 版本新增至 Android Builds」一節為選用項目。
建構 SLA4 後,最後的記錄訊息會包含 sl4a.apk
檔案的位置,您必須在所有裝置上安裝這個檔案。以下是記錄訊息的範例:
Copy: out/target/path/to/sl4a.apk
設定要測試的裝置
請使用下列 ACTS 建構/工具需求設定裝置:
如果無法使用 ADB 供應商金鑰,請在 DUT 上輕觸「Trust this computer」彈出式視窗。如果有 ADB 供應商金鑰:
- DUT 的 ADB 供應商金鑰和驅動程式不得重複。
- 如要一律啟用 USB 偵錯功能,請使用
export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys
將來源樹狀結構中的 ADB 供應商金鑰新增至~/.bashrc
(或等效項目),其中/path/to/directory
是主機上的完整路徑。如要排解 ADB 問題,請參閱「在硬體裝置上執行應用程式」。
允許 USB 偵錯:安裝 ADB 驅動程式時,ADB 裝置可能會在裝置上觸發提示,要求允許 USB 偵錯。
使用
$ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk
安裝sl4a.apk
請確認手機使用 USB 2.0 連線至測試伺服器。
這些測試需要使用實際的行動網路,因此請將 SIM 卡插入手機,並將手機放在訊號良好的區域。
按照「撰寫設定檔」一節所述,將所有 SIM 卡新增至 JSON 檔案。
設定環境
在設定環境之前,請確認您已安裝 Python 3.4 以上版本。
執行:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler
安裝 ACTS
執行:
cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -
如要驗證安裝狀態,請執行 act.py -h
,系統會列出可用指令的清單。
編寫設定檔
如要執行測試,您必須建立含有設定資訊的檔案。以下是 .config
的範例檔案。在 Android 存放區的 tools/test/connectivity/acts/framework/sample_config.json
下方,也有類似的檔案。將 XXXXXXX
替換為裝置序號,提供 ACTS 執行電話測試所需的最低資訊。
{
"_description": "Minimum Telephony Config",
"testbed":
[
{
"_description": "A testbed listing two AndroidDevices for adb.",
"name": "ExampleTestBed",
"AndroidDevice": [{"serial": "XXXXXXX", "adb_logcat_param": "-b all"},
{"serial": "XXXXXXX", "adb_logcat_param": "-b all"}]
}
],
"logpath": "/path/to/logs",
"testpaths": "/path/to/android/repo/tools/test/connectivity",
"sim_conf_file": "/path/to/simcard_list.json"
}
使用表格中的鍵設定測試參數。如需其他選項,請參閱「其他設定選項」。
鍵 | 值 |
---|---|
_description
|
對整個設定檔的內容加註 |
testbed
|
指定可執行測試的環境 |
(testbed) _description
|
針對每個測試平台提供註解,因為 ACTS 可以指定個別測試平台 |
(測試版) name
|
用於從指令列呼叫的測試平台名稱 |
(testbed) AndroidDevice
|
測試指定的特定裝置清單
注意:清單中可能會列出多部裝置。執行互相呼叫的手機測試預期會有兩部裝置,如果裝置數量少於兩部,測試就會失敗。如果清單中列出兩部裝置,但測試只預期會有一部,則系統會在第一部裝置上執行該項測試。 |
(testbed)(AndroidDevice) serial
|
裝置序號 (印在 adb devices 上)
|
(testbed)(AndroidDevice) adb_logcat_param
|
於測試期間呼叫 adb logcat 時傳遞的參數 |
logpath
|
記錄檔儲存在測試伺服器上的地點 |
testpaths
|
測試案例程式碼的位置 |
sim_conf_file
|
列出可用 SIM 卡的 .json 檔案位置 SIM 卡清單包含卡片 ID、卡片功能、作業員和電話號碼。 |
{
"sim-card-ID-here": {
"capability": [
"voice",
"ims",
"volte",
"vt",
"sms",
"tethering",
"data"
],
"operator": "tmo",
"phone_num": "12345678901"
},
...
}
如要找出電話號碼,請在裝置上依序前往「系統」>「關於手機」。
SIM 卡 ID 通常會印在 SIM 卡上,或是在裝置的「系統」>「關於手機」>「SIM 卡狀態」下方。運算子字串會在 tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py
中定義,然後搜尋 CARRIER_
。
其他設定選項
Android 存放區中 tools/test/connectivity/acts/framework/acts/config/entries.py
的 entries.py
檔案包含主要指令列設定選項的定義。
您也可以搜尋 self.user_params.get
,在程式碼中找出特定測試參數。
執行測試
設定檔寫入後,透過指令列執行測試。雖然有許多選項,但最簡單的方法是使用 -c filename.config -tc
TestCase:name
。本範例使用名為 minimum.config
的設定檔:
act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general
成功執行的測試應有類似以下的最終輸出訊息:
INFO Summary for test run ExampleTestBed@yyyy-mm-dd_15-23-43-614: Requested 1,
Executed 1, Passed 1, Failed 0, Skipped 0, Error 0
執行多項測試
如要在多個檔案中執行特定測試案例,請建立測試檔案,並使用旗標 -tf
傳遞,如回歸測試套件範例所示:
TelLiveVoiceTest:
test_call_mo_voice_general,
test_call_volte_to_volte,
test_call_3g_to_3g
TelLiveDataTest:
test_airplane_mode,
test_4g,
test_3g
TelLiveSmsTest:
test_sms_mo_4g,
test_sms_mt_4g,
test_sms_mo_3g,
test_sms_mt_3g,
test_mms_mo_4g,
test_mms_mt_4g
此範例指令假設檔案名稱為 regression_suite.
act.py -c minimum.config -tf regression_suite
多次執行測試
如要多次執行測試案例 (-tc
) 或測試檔案 (-tf
),請在指令中加入 -ti
#
(測試迭代)。