ACTS 電話測試

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 # (測試迭代)新增至指令。