Appiumに触れる(1)
ここまではAppiumに関する最近の事情や情報を載せてきました。以下では実際にAppiumを使うにあたり比較的簡単なAppiumのデスクトップアプリ、Appium Desktopに触れてみます。これにより、Appiumに触れたことのない方はどういうものか、触れたことのある方が新しいインスペクタ機能がどうなっているか、を知ることができればと思います。
このデスクトップアプリは視覚的に成果を確認しやすい環境である上に、実行環境がアプリに内包されているのでツールへの入り口として適当なためです。なお、このアプリのインスペクタ機能を使うことで、テストケースを実装する際の要素の特定が簡単になります。また、簡単ではありますが記録機能を備えているので、簡単なシナリオの記述などにおいては参考になるかと思います(もちろん、このままでは長期にわたりメンテナンスは困難な形になるのでそこからは実際にコードを書き換えながら運用にのせることが必要になります)。
環境
今回はAndroidを題材とします。これは、Andoridであれば基本的にはWindows/Mac/Linuxのいずれにおいても同様に利用できるためです。また、Appium DesktopはElectronアプリなので、同様に特に実行プラットフォームを選びません。
- Appium Desktop 1.2.7
-
クライアント:Ruby Client
- 実際に記録したシナリオをRubyクライアントを使いスクリプトから実行してみます
- Ruby言語を選んだ理由としては、少ない記述量でコードをすることが可能なためです
- Ruby 2.2以上に対応
なお、著者はmacOS(10.13.1)の環境下で以下を試しています。
Android環境の用意
Androidを使うにあたり、まずはエミュレータを用意してもらう必要があります。Androidの環境はすでにGoogleから公開されているものや、他にも同様のWebページを探すことができるためここでは省略します。この中で、特にANDROID_HOME
とJAVA_HOME
へのパス、コマンドとしてadb
、android
、emulator
が利用できるようになっていると問題ありません。
サンプルアプリの取得
今回テスト対象となるアプリは、このAppiumリポジトリのサンプルアプリです。こちらからAPKをダウンロード、任意のフォルダに置いてください。なお、このアプリはAppium Project共有のテストアプリとして利用されています。
Appium Desktopの起動
それでは、今からこれまでに用意した環境を使い、実際にAppiumに触れてみましょう。
「環境」の項目でダウンロードしてきたAppium Desktopを起動します。すると、以下の画面が表示されるかと思います。
まずは[Start Server v1.7.1]をクリックし、Appiumサーバを起動します。すると、以下の図のような画面になります。
この状態で、画面右上の虫眼鏡マークをマウスオーバーすると、[Start Inspector Session]という文字が見えます。このマークをクリックすると以下の画面が表示されます。
この中で、以下の赤マークで囲ったボタンをクリックし、JSON Representationの欄を編集できるようにします。
ここで、以下をコピーし、編集領域にペーストします。この中で、「app」に該当する箇所は、テスト対象のapk
が存在するパスを指定し更新してください。
{ "platformName": "android", "automationName": "uiautomator2", "app": "/path/to/test/app/api.apk", "platformVersion": "7.1.1", "deviceName": "Android Emulator", "appPackage": "io.appium.android.apis", "appActivity": "io.appium.android.apis.ApiDemos" }
ペーストすると以下のようになり、赤枠で囲った箇所をクリックし、編集状態を保存することができるようになります。
これで準備は完了です。試しにAppiumを起動してみましょう。[Start Session]をクリックします。
特に設定に問題が無いようなら、設定ファイル通りのAPKをエミュレータにインストールし、アプリが起動します。試しにAppium Desktopに表示されているinspectorの任意の要素をクリックすると、そこに該当する関係要素がハイライトされます。
お疲れ様でした。これで基本的なAppium Desktopを利用した、要素を検索可能になるインスペクタ機能を利用できるようになります。