ども。LDI品質管理部の仙波です。 スマホアプリの自動テストを担当しています
久しぶりに自動テストの作成に関する投稿をしてみます。
今回はAndroidのエミュレーター使ってテストを行う場合に必要となるセットアップを紹介します。
テスト実行時に必要なセットアップ
自動テストを実行する場合、テストのシナリオを流す前に事前にセットアップしないといけないことが色々あります。 例えば以下のようなものがあります。
- 端末のセットアップ(実機/エミュレーター)
- アプリケーションの(再)インストール
- テストデータのセットアップ
本記事ではAndroidを前提に説明します。
Androidエミュレーターのセットアップ
Androidのエミュレーターに関する具体的な作業としては以下のようなものがあります。
- 仮想マシン(AVD)の作成
- 仮想マシン(AVD)の起動
- 言語設定
- 開発者モードの有効化
- 自動入力サービスの無効化
- プロキシの設定
仮想マシン(AVD)の作成
Android StudioでAVD(Android Virtual Device)を作成します。 テストコード作成者のマシン上でテストを行う場合、この作業は通常は手動で1回行えばよいと思います。
クラウド環境等を利用しており繰り返しAVDを作成する必要がある場合はavdmanagerを使用して自動化できると思います。
AVDの作成例
この後の説明で使用するため、Android Studio (Flamingo)を使用してAVDを作成します。
- Android Studio を起動します。Device ManagerのVirtualタブにある
Create Device
をクリックします。 Pixel 6
を選択してNext
をクリックします。Tiramisu
を選択してNext
をクリックします。- AVD Nameを
Pixel 6(Android 13)
に書き換えます。 Show Advanced Settings
をクリックします。Enable Device Frame
をOFFにします。Finish
をクリックします。Device ManagerにAVDが追加されます。
エミュレーターをウィンドウ表示するための設定
Android Studioで以下の設定を行います。
Android Studio
>Preferences
(Windowsの場合は 'Settings') を選択します。Tools
>Emulator
を選択します。Launch in a tool window
のチェックをOFFにします。
仮想マシン(AVD)の起動
Device Managerで起動したいAVDの▶︎をクリックすると起動します。
AVDを作成する際にEnable Device Frame
をOFFに設定したので、ウィンドウ表示になっています。
ウィンドウタイトルを見てみましょう。
Android Emulator - Pixel_6_Android_13_:5554
と表示されています。
入力したAVD名
Pixel 6(Android 13)
の空白と括弧が_
に置換され、
Pixel_6_Android_13_
になっています。
emulatorコマンドなど、コマンドラインでAVDを指定する際はこの名前を使用することになります。
:5554
の部分はTCPのポート番号5554がこのエミュレーターに割り当てられていることを意味します。
このエミュレーターのUDIDはネーミングルールによりemulator-5554
となります。
ターミナルを開いて、adb devices
コマンドでデバイスのリストを確認すると以下のようになります。
言語設定
AVDを作成した直後は英語になっていますので、日本語に設定します。
Settings
アイコンをタップして設定アプリを起動します。System
をタップします。Language & input
をタップします。Languages
をタップします。Add a language
をタップします。- 右上の虫眼鏡ボタンをタップし、
ja
と入力します。日本語
をタップします。 日本語(日本)
の右側のハンドルをドラッグして一番上まで移動します。日本語モードに切り替わります。
開発者モードの有効化
開発者モードを有効にします。
- 設定アプリの
エミュレートされたデバイスについて
をタップします。 - 一番下にスクロールして、ビルド番号を複数回クリックします。
- 「開発者向けオプションが有効になりました」と表示されます。
←
ボタンをクリックし、システム
をタップします。開発者向けオプション
が表示されることを確認します。
自動入力サービスの無効化
自動テストでテキストを入力するときに自動入力サービスが勝手に入力補完をするとテストが失敗することがあります。 テストを安定させるために、自動入力サービスは無効化します。
- 設定アプリの
パスワードとアカウント
をタップします。 - 自動入力サービスをタップします。
なし
をタップします。
プロキシの設定
テスト環境によってはAndroidエミュレーターにプロキシを設定する必要があります。
例えば10.0.2.2
のポート番号8080
を使用する場合は以下のように設定します。
まとめ
自動テストを実行する前に必要となるAndroidエミュレーターのセットアップ例を説明しました。
次回はこれらセットアップタスクの一部を自動化する方法を紹介します。