本稿で使用するAndroid向けのサンプルアプリ(テスト対象アプリ)と、そのサンプルアプリに対するテストスクリプトを、以下のリポジトリで公開しています。本稿と併せて参考にしてください。
リポジトリのディレクトリ構成の概要は以下の通りです。
{プロジェクトのルート} ├── build.gradle (テスト対象アプリのビルドスクリプト) ├── app (テスト対象アプリが格納されている) │ └── src │ ├── main (ソースコード本体) │ ├── appium (appiumフレーバーのソース差分) │ … │ ├── appium (本稿のテストプロジェクトのルートディレクトリ) │ ├── build.gradle (本稿のテストプロジェクト向けのビルドスクリプト) │ ├── src │ … └── test (本稿のテストスクリプトが格納されている) …
本稿でテスト対象とするアプリは連載第1回の記事で紹介したものと同じものです。Android 4.1以上で動作し、以下の3つの画面で構成されています。
また、Appiumによるテスト実行専用のプロダクトフレーバー「appium」を、テスト対象アプリに追加しています。
「appium」プロダクトフレーバーでは、Appium mode/Selendroid modeの両方で、WebViewを含むテストが実行できるように、「Appiumの2つの動作モード」で紹介した以下の2つの対応を行っています。
なお、実際のプロダクトでは、同じアプリを両方の動作モードでテストできるようにする必要はありません。そのため、対応が必要な場合でも、どちらか一方のみの対応で十分であることに注意してください。
テスト対象アプリのapkファイルをビルドするには、以下のコマンドを実行します。
$ cd {プロジェクトのルート} $ ./gradlew build
ビルドに成功すると、「{プロジェクトのルート}/app/build/outputs/apk/」配下に、apkファイルがいくつか生成されます。本稿では、前述の「appium」プロダクトフレーバーのapkファイル「app-appium-debug.apk」を利用します。
Appiumのテストスクリプトは、さまざまな言語やフレームワークを使って書くことができますが、サンプルのテストプロジェクトでは、以下を採用しています。
テスト内容は以下の通りです。
サンプルのテストスクリプトのクラス構成は以下の通りです。
サンプルの「build.gradle」には、IDEにEclipseを使う場合の設定も記載しています。Eclipseでテストスクリプトを編集するには、「{プロジェクトのルート}/appium」ディレクトリで以下のコマンドを実行した後に、Eclipseからインポートしてください。
$ ./gradlew eclipse
■テスト実行環境のAndroidバージョン
サンプルのテスト対象にはWebViewが含まれるため、Appiumがサポートしているテスト実行環境(端末やエミュレーター)のAndroidバージョンは、以下のようになります。
ただし、サンプルのテスト対象アプリがAndroid 4.1以上のみで動作するため、Android 4.1未満の端末・エミュレーターでは動作しない点に注意してください。
また、Android 5.0以上の端末・エミュレーターを利用する場合には、コラム「Appiumのバージョンによる制限事項」も併せて参照してください。
■特定の動作モード向けのテストケースのみを実行する方法
サンプルのテストスクリプトでは、Appium mode向けのテストケースと、Selendroid mode向けのテストケースの所属パッケージを分けているため、「--tests」オプション(Gradle Javaプラグインのフィルタリングオプション)を使って、どちらか一方のみのテストスクリプトを実行できます。
Appium mode向けのテストケースのみを実行するには、Appiumサーバーを起動した状態(後述)で、以下のコマンドを実行してください。
$ cd {プロジェクトのルート}/appium $ ./gradlew test --tests "*.appium.*"
Selendroid mode向けのテストケースのみを実行する場合は、代わりに以下のコマンドを実行してください。
$ cd {プロジェクトのルート}/appium $ ./gradlew test --tests "*.selendroid.*"
iOS向けのサンプルアプリは下記リポジトリで公開しています。テスト対象アプリのビルド手順は連載第1回記事を参照してください。
テストスクリプトは、「Appium」ディレクトリ下にPython(unittestモジュール)で書いたものを格納してあります。Appiumクライアントライブラリ(Pythonバインディング)は、下記コマンドでインストールできます。
$ pip install Appium-Python-Client
また、テストランナーにnoseを使用しています。インストールされていない場合は、下記コマンドでインストールしてください。
$ pip install nose
Copyright © ITmedia, Inc. All Rights Reserved.