Android 通訊測試套件 (ACTS) 會執行連線堆疊 (例如 Wi-Fi、藍牙和行動網路) 的自動化測試。測試工具需要 ADB 和 Python。該工具位於 tools/test/connectivity/acts
。
本頁面說明如何為擁有兩支手機的使用者,執行 Android 開放原始碼計畫 (AOSP) 中所提供的基本電話測試。
必要條件
如要執行 ACTS 電話測試,您應可存取完整的 Android 存放區,並在要測試的裝置上安裝使用者偵錯版本。
下載 Android 存放區
按照「下載原始碼」中的操作說明,在您要測試的裝置具有 USB 連線的機器上下載 Android 存放區。
- Android 開放原始碼計畫是一個持續增加的數 GB 程式碼集。請據此調整您對下載時間的預期。
- 如果機器大小受到限制,請在
repo init
指令中加入--depth=1
。
- 如果機器大小受到限制,請在
- 日後如要取得 ACTS 工具的更新內容,請前往 Android 根目錄:
- 使用
repo sync tools/test/connectivity
- 和
repo sync external/sl4a
- 使用
在裝置上驗證使用者偵錯版本
在測試裝置上安裝 Android 使用者偵錯版本。
- 按照「建構 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
的範例檔案。tools/test/connectivity/acts/framework/sample_config.json
下的 Android 存放區中會提供類似的檔案。將 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
|
指定可執行測試的環境規格 |
(測試版) _description
|
針對每個測試床加上註解,因為 ACTS 可以針對個別測試床 |
(測試版) name
|
用於從指令列呼叫的測試平台名稱 |
(測試版) AndroidDevice
|
測試目標的特定裝置清單
注意:此處可能會列出多部裝置。執行電話呼叫的測試會預期有兩個裝置,以及數量變少就會失敗。如果這裡列出兩個裝置,且測試預期只有一個裝置,表示測試會在第一部裝置上執行。 |
(測試版)(AndroidDevice) serial
|
裝置的序號 (從 adb devices 列印)
|
(測試版)(AndroidDevice) adb_logcat_param
|
在測試期間呼叫 adb logcat 時傳遞的參數 |
logpath
|
用來儲存記錄的測試伺服器上的位置 |
testpaths
|
測試案例程式碼的位置 |
sim_conf_file
|
.json 檔案列出可用 SIM 卡的位置
SIM 卡清單包括卡片 ID、卡片功能、電信業者和電話號碼。 |
{
"sim-card-ID-here": {
"capability": [
"voice",
"ims",
"volte",
"vt",
"sms",
"tethering",
"data"
],
"operator": "tmo",
"phone_num": "12345678901"
},
...
}
如要找出電話號碼,請在裝置上依序前往「系統」>「關於手機」。
SIM 卡 ID 通常印在 SIM 卡中,或者也可以從裝置的「System」(系統) >「關於手機」>「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
#
(測試疊代)。