Android Comms テストスイート(ACTS)では、Wi-Fi、Bluetooth、モバイル通信サービスなどの接続スタックの自動テストを実行できます。テストツールには adb と Python が必要です。ツールは tools/test/connectivity/acts
にあります。
このページでは、2 台のスマートフォンを所有するユーザーが、Android オープンソース プロジェクト(AOSP)で入手できる基本的なテレフォニー テストを実行する方法について説明します。
前提条件
ACTS テレフォニー テストを実行するには、Android リポジトリ全体にアクセスできる必要があります。また、テスト対象のデバイスに userdebug ビルドをインストールする必要があります。
Android リポジトリをダウンロードする
ソースのダウンロードに記載されている手順に沿って、テスト対象のデバイスに USB で接続されているマシンに Android リポジトリをダウンロードします。
- AOSP は数ギガバイトのコードベースであり、今も拡大を続けています。AOSP のサイズを念頭に、ダウンロード時間を適切に見積もってください。
- マシンにサイズ制限がある場合は、
--depth=1
をrepo init
コマンドに追加します。
- マシンにサイズ制限がある場合は、
- ACTS ツールの今後のアップデートを入手するには、Android ルート ディレクトリに移動して次のコマンドを使用します。
repo sync tools/test/connectivity
repo sync external/sl4a
userdebug ビルドがデバイスにインストールされていることを確認する
テストデバイスに userdebug バージョンの Android をインストールします。
- Android のビルドに記載されている手順に沿ってリポジトリを構築します。
- デバイスのフラッシュの説明に沿ってデバイスをフラッシュします。
- コマンド
adb shell getprop ro.build.type
を実行すると、userdebug
が返されます。 ro.build.type
を使用できない場合は、userdebug ビルドを使用することで、adb シェルをルート(ターミナル#
)として実行できます。
- コマンド
SL4A をビルドしてインストールする
Android 用スクリプト レイヤ(SL4A)をビルドしてインストールするには、Android 用スクリプト レイヤに記載されている手順を実行します。デフォルトで SL4A ビルドを Android ビルドに追加する手順は省略可能です。
SL4A をビルドすると、ログメッセージに sl4a.apk
ファイルの場所が出力されます。このファイルはすべてのデバイスにインストールする必要があります。以下に、ログメッセージの例を示します。
Copy: out/target/path/to/sl4a.apk
デバイスを設定してテストする
ACTS のビルドとツールに関する以下の要件を使用してデバイスを設定します。
adb ベンダーキーを使用できない場合は、DUT に [このコンピュータを信頼する] ポップアップが表示されたときにタップします。adb ベンダーキーを使用できる場合は、次の手順に従います。
- 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
|
テストを実行できる環境の仕様。 |
(testbed)_description
|
各 testbed に関するコメント(ACTS は個々の testbed をターゲットにすることが可能なため)。 |
(testbed)name
|
コマンドラインから発信する場合の testbed の名前。 |
(testbed)AndroidDevice
|
テスト対象の特定デバイスのリスト。
注: 複数のデバイスをリストに含めることができます。スマートフォンから相互に発信するテストでは 2 台のデバイスが必要なため、それより少ないと失敗します。2 台のデバイスがリストに含まれているものの、テストでは 1 台しか使用しない場合、1 台目のデバイスでテストが実行されます。 |
(testbed)(AndroidDevice)serial
|
デバイスのシリアル番号(adb devices を実行すると出力されます)。
|
(testbed)(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 カードに印字されています。または、[システム] > [デバイス情報] > [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
#
(繰り返し回数)をコマンドに追加します。