このドキュメントではマルチデバイス NFC テストの実行方法について説明します。
前提条件を満たす
マルチデバイス NFC テストを実行する前に、以下を行います。
DUT とテスト用の PN532 NFC リーダーを準備する
前の手順が終わったら、以下の手順に沿って DUT とテスト用の PN532 NFC リーダーを準備します。
- USB 経由で DUT をホストマシンに接続します。
- ホストに ADB 経由で DUT にアクセスするための権限を付与します。
次のコマンドを実行して、CTS 検証ツールアプリ(
CtsVerifier.apk
)を DUT にインストールします。extract root/out/host/linux-x86/cts-verifier/android-cts-verifier.zip cd android-cts-verifier adb install -r -g CtsVerifier.apk
NFC テストに必要な APK をインストールします。
cd MultiDevice adb install -r -g NfcEmulatorTestApp.apk
NFC をこの DUT 用にセットアップする
以下の手順に沿って NFC をこの DUT 用にセットアップします。
- DUT で [設定] メニューを開きます。
- [NFC] または [接続済みのデバイス] のセクションを探します。
- [NFC] の切り替えスイッチがオンになっていることを確認します。
NFC チップをスマートフォンの NFC リーダーの上に配置します。
- PN532 NFC チップを確保します。All-In-One PN532、非 BLE オプションが推奨です。
- USB ケーブルを使って PN532 NFC チップを Linux ホストに接続します。
- 次の写真のように、PN532 NFC チップをスマートフォンの NFC リーダーの上に配置します。
図 1. NFC チップをかざす。
テスト環境をセットアップする
以下の手順に沿って、テスト環境のセットアップを行います。
テスト環境をセットアップするには、次のコマンドを実行します。
cd MultiDevice source build/envsetup.sh
このコマンドは、Python をチェックし、
PYTHONPATH
環境変数をセットアップします。ターミナルにエラーが出力されなければ、マルチデバイス テストを実行する環境の準備は整っています。実行時にエラー メッセージ
libtinfo.so.6: no version information available (required by /bin/sh)
が表示された場合は、次のコマンドを実行してlibtinfo.so.6
ファイルの名前を変更します。mv $ENV_DIRECTORY/lib/libtinfo.so.6 $ENV_DIRECTORY/lib/libtinfo.so.6.bak
MultiDevice/config.yml
で DUT のデバイス シリアル ID と PN532 NFC リーダーを設定して、テストベッドをセットアップします。TestBeds: - Name: CtsNfcHceMultiDeviceTestCases-py-ctsv Controllers: AndroidDevice: - serial: "<device-id>" TestParams: pn532_serial_path: "<pn532-serial-path>"
NFC テストを実行する
NFC テストを実行します。
CTS-V アプリを開き、[NFC Tests] をタップします。
図 2. CTS-V アプリ。
テストケースの一覧とともに情報ウィンドウが表示されます。
図 3. CTS-V アプリのテストケース。
次のコマンドを実行して、ホスト上でテストを実行します。
MultiDevice$ python3 tools/run_all_tests.py
テストが完了すると、CTS-V アプリでテスト結果が更新されます。成功したテストは緑色で表示されます。
図 4. CTS-V テストの結果。
赤色の失敗が表示されている場合は、次のコマンドで失敗したテストを実行し直します。
python3 tools/run_all_tests.py --test_cases "`TestCaseA`" "`TestCaseB`" --test_files "`TestFileA`"
ここで
TestCaseA
とTestCaseB
は、CTS-V に表示されたテストケースの名前です。TestFileA
はテストケースを含んでいるテストファイルです。
例:
python3 tools/run_all_tests.py --test_cases "test_conflicting_non_payment" "test_conflicting_non_payment_prefix" --test_files "CtsNfcHceMultiDeviceTestCases-py-ctsv"