Android 通訊測試套件 (ACTS)對連線堆疊(例如 Wi-Fi、藍牙和蜂窩服務)執行自動測試。測試工具需要adb 。和Python,可以在tools/test/connectivity/acts
中找到。
本頁介紹如何為擁有兩部手機的使用者執行Android 開源專案 (AOSP)中提供的基本電話測試。
先決條件
要執行 ACTS 電話測試,您應該有權限存取完整的 Android 儲存庫,並在要測試的裝置上安裝 userdebug 版本。
下載 Android 儲存庫
依照下載原始碼中的說明,在與要測試的裝置具有 USB 連接的電腦上下載 Android 儲存庫。
- AOSP 是一個持續成長的數 GB 程式碼庫。相應地調整您對下載時間的期望。
- 如果機器的大小受到限制,請將
--depth=1
加入repo init
指令中。
- 如果機器的大小受到限制,請將
- 若要取得 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
不可用,則 userdebug 建置允許以 root 身分執行 adb shell(終端機#
)。
- 指令
建造和安裝 SL4A
若要建置和安裝 Scripting Layer For Android (SL4A),請按照Scripting Layer for Android中的說明進行操作。預設將 SL4A 建置新增至 Android 建置部分是可選的。
建置 SLA4 後,最後一則日誌訊息包含sl4a.apk
檔案的位置,您需要在所有裝置上安裝該檔案。以下是日誌訊息的範例:
Copy: out/target/path/to/sl4a.apk
配置要測試的設備
使用這些 ACTS 建置/工具要求配置設備:
如果 ADB 供應商金鑰不可用,請在 DUT 上出現「信任此電腦」彈出視窗時點擊它。如果 ADB 供應商金鑰可用:
- ADB 供應商金鑰和驅動程式對於 DUT 必須是唯一的。
- 若要始終啟用 USB 偵錯,必須使用
export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys
新增至~/.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 | 測試可以運行的環境規範 |
(測試台) _description | 對每個測試平台進行評論,因為 ACTS 可以針對單一測試平台 |
(測試床) name | 用於從命令列呼叫的測試床的名稱 |
(測試平台) AndroidDevice | 測試目標的特定設備列表 注意:可以列出多個設備。執行電話互相呼叫的測試預計有兩個設備,如果設備較少,則會失敗。如果列出了兩個設備,而測試只需要一個,則該測試將在第一個設備上運行。 |
(測試床)(AndroidDevice) serial | 設備序號(從adb devices 列印) |
(測試床)(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 #
(測試迭代)新增至指令。