ACTS の詳細ガイド

このガイドでは、Android Comms テストスイート(ACTS)によるテストを実行する方法について説明します。

コードの取得

最新バージョンの ACTS は、/platform/tools/test/connectivity/ の Android オープンソース プロジェクト(AOSP)Gerrit リポジトリにあります。

コードを同期する方法について詳しくは、ソースのダウンロードAndroid デベロッパー Codelab をご覧ください。コードを同期する際は、main ブランチを同期します。タグ付きのビルドを同期しないでください。

ACTS をダウンロードする際は、Android リポジトリ全体を同期する必要はありません。ACTS のみを同期するには、repo init コマンドを実行した後、次のコマンドを実行します。

repo sync platform/tools/test/connectivity

ACTS は <repo>/tools/test/connectivity/acts/ にあります。

環境のセットアップ

ACTS にセットアップに必要な依存関係があることを確認するには、次の Python 3 セットアップ ツールをインストールします。

sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo apt-get install adb fastboot
sudo pip3 install --upgrade pip setuptools
# Needed due to an on-going bug.
sudo apt-get install protobuf-compiler

ACTS のインストール

<repo>/tools/test/connectivity/acts/framework にある setup.py スクリプトは、残りの依存関係と ACTS 自体をインストールします。

ACTS で、または ACTS を使用して継続的に開発するには、次のコマンドを実行します。

cd <repo>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -

テストのみを実行する場合は、代わりに次のコマンドを実行します。

cd <repo>/tools/test/connectivity/acts/framework/
sudo python3 setup.py install
cd -

インストールの確認

セットアップ後、ターミナルで act.py を使用できることを確認し、Python で ACTS モジュールをインポートします。次に例を示します。

act.py -h
usage: act.py [-h] -c <PATH> [--test_args Arg1 Arg2 ... ]
python3
>>> from acts.controllers import android_device
>>> device_list = android_device.get_all_instances()

インストールせずに実行

ユーザーはパッケージを直接インストールせずに ACTS を実行できます。その際、行う必要があるのは、Python パスを変更して <repo>/tools/test/connectivity/acts/framework からインポートすることだけです。ACTS を実行する前に、setup.py install_deps を実行して、ACTS をインストールせずに ACTS によって必要な依存関係をすべてインストールします。既存のバージョンの ACTS がマシン上にある場合は、sudo setup.py uninstall を実行します。

ACTS を実行するには、次のいずれかのコマンドを使用します。

  • cd <repo>/tools/test/connectivity/acts/framework; acts/bin/act.py
    
  • export PYTHONPATH=<repo>/tools/test/connectivity/acts/framework; acts/bin/act.py
    

ACTS は -c および -tc フラグをリクエストするメッセージを出力します。詳細については、ACTS テストの構成をご覧ください。

仮想環境での ACTS のセットアップ

インストールを ACTS の他のインストールから分離するには、ACTS を仮想環境にインストールする必要があります。次の手順は、ci.android.com にある aosp-mainacts_test.zip があること、またはソースに直接アクセスできることを前提としています。

  1. ACTS を取得します。

    ビルドが公開されています。詳細については、Android の継続的インテグレーションをご覧ください。ci.android.com のビルドから zip ファイルを取得できます。test_suites_x86_64 ターゲットを探します。

    acts_test.zip ファイルは [アーティファクト] タブにあります。この例では、acts_test.zip/tmp/acts_test.zip にダウンロードされていると仮定します。

    ソースコードにアクセスできる場合は、代わりにソースコードを使用できます。

  2. マシンに virtualenv をインストールします。

    まだインストールしていない場合は、以下を使用して virtualenv をインストールできます。

    python3 -m pip install -U --user virtualenv
    
  3. 仮想環境を作成して有効にします(この例では /tmp/my_virtualenv)。これにより、新しいパッケージが virtualenv ディレクトリにインストールされます。

    python3 -m virtualenv /tmp/my_virtualenv
    source /tmp/my_virtualenv/bin/activate
    
  4. ACTS をインストールします。次のコマンドを実行します。

    unzip /tmp/acts_test.zip -d /tmp/my_virtualenv/acts
    cd /tmp/my_virtualenv/acts/tools/test/connectivity/acts/framework/
    python3 setup.py install
    

    コードに直接アクセスできる場合は、解凍をスキップできます。

    cd /path/to/acts/framework
    python3 setup.py install
    
  5. 任意の場所から ACTS を実行します。

    act.py -c <config> ...
    
  6. テストの実行が完了したら、仮想環境を終了します。

    deactivate
    

Android デバイスのフラッシュ(省略可)

デバイスのシステム特権制御を取得する場合は、userdebug ビルドを使用してデバイスをフラッシュします。

デバイスをフラッシュするには、Android Flash Tool(flash.android.com/)を使用します。詳細については、Android Flash Tool のドキュメントをご覧ください。

SL4A のインストール(省略可、推奨)

userdebug ビルドでデバイスを使用している場合は、SL4A を使用してデバイスのシステム特権制御を取得する方法もあります。テストで SL4A をデバイスで使用しない場合は、ACTS 構成で skip_sl4a フラグを設定して、この機能を無効にできます。

"AndroidDevice": [{"serial": "standardized serial number reference", "skip_sl4a": true}, ...]

SL4A APK を取得するには、Android 用スクリプト レイヤの手順を実行します。