Android Comms Test Suite (ACTS)執行連接堆棧的自動化測試,例如 Wi-Fi、藍牙和蜂窩服務。測試工具需要adb 。和 Python,它可以在tools/test/connectivity/acts
中找到。
本頁介紹如何為擁有兩部手機的用戶運行Android 開源項目 (AOSP)中提供的基本電話測試。
先決條件
要運行 ACTS 電話測試,您應該有權訪問完整的 Android 存儲庫並在要測試的設備上安裝 userdebug 版本。
下載 Android 存儲庫
按照下載源代碼中的說明在與您要測試的設備有 USB 連接的機器上下載 Android 存儲庫。
- AOSP 是一個持續增長的數千兆字節代碼庫。相應地調整您對下載時間的期望。
- 如果機器大小受限,請將
--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
要構建和安裝 Android 腳本層 (SL4A),請按照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
將源樹中的 ADB 供應商密鑰添加到~/.bashrc
(或等效項),其中/path/to/directory
是您在主機上的完全限定路徑。有關 ADB 故障排除,請參閱在硬件設備上運行應用程序。
允許 USB 調試:安裝 adb 驅動程序後,adb devices 可能會在設備上觸發提示以允許 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 | 測試目標的特定設備列表 注意:可以列出多個設備。運行電話互相呼叫的測試預計會有兩個設備,如果設備較少,則失敗。如果列出了兩個設備並且測試只需要一個設備,則該測試將在第一個設備上運行。 |
(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"
},
...
}
您可以在System > About phone下從設備中提取電話號碼。 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 #
(測試迭代) 添加到命令中。