Appium Inspectorを使って画面要素を取得しよう(beta版)
はじめに
T-DASHでは、モバイルアプリのテストを実行することができます。
本ページでは、モバイルアプリの画面要素取得とT-DASHへの画面定義登録方法について紹介いたします。
ゴール
モバイルアプリの画面要素を取得し、画面定義として登録できる。
前提
- モバイルアプリテスト自動化のための環境構築が完了している
詳細:モバイルアプリのテスト自動化を行うために必要な環境を整えよう(beta版) - 画面要素取得対象のモバイルアプリが利用可能な状態である
(APKファイルが存在する または 端末にインストール済み) - T-DASHでモバイルアプリ対応プロジェクトを作成済みである
- モバイル端末(実機・仮想)とT-DASHを利用しているPCが接続済み状態である
目次
- Appiumの起動
- Appium Inspectorの起動
- プロジェクトを作成する
- Capabilityの設定
- アプリケーションの画面要素を取得
- Chromeブラウザの画面要素を取得
- T-DASH画面定義への登録
補足:画面要素が取得できない(要素エラーでテスト実行に失敗する)場合
1. Appiumの起動
画面要素を取得するためにはモバイル端末に用いるAppiumが起動状態である必要があるため、あらかじめAppiumを起動しておきます。
1.1 コマンドプロンプト、またはターミナルを起動する
1.2. 下記コマンドを入力し、Appiumを起動する。
(ブラウザ操作時にドライバが自動更新されるオプションを付与しています。)appium --allow-insecure chromedriver_autodownload
2. Appium Inspectorの起動
Appium Inspectorはモバイルアプリ内の要素を取得したり、アプリを操作するためのさまざまな機能が含まれるツールです。
2.1. アプリケーション一覧からAppium Inspectorを起動する。
T-DASHからは、画面定義にある「端末を選択し画面要素を取得」ボタンをクリックして表示されるダイアログで端末選択後「端末情報をコピーしてAppium Inspectorを起動」ボタンをクリックすることで起動することができます。
3. プロジェクトを作成する
3.1. T-DASHを起動し、プロジェクト一覧画面で「プロジェクトを作成」ボタンをクリックする。
3.2. プロジェクト作成画面にて、以下内容を入力し「作成」ボタンをクリックする。
プロジェクト種類 | Androidアプリ[Beta版] |
キー | ”半角英数字の任意の文字列” |
プロジェクト名 | ”任意の文字列” |
対象アプリ名 | ”任意の文字列” |
アプリ種別 | APKファイル または インストール済みアプリ |
対象アプリファイルパス(APKファイル選択時) | APKファイル保存先フルパス |
appPackage(インストール済みアプリ選択時のみ) | アプリのパッケージ名(取得方法はこちらを参照) |
appActivity(インストール済みアプリ選択時のみ) | アクティビティ名(取得方法はこちらを参照) |
3.3. 新しく作成されたプロジェクト名のリンクをクリックする。
4. Capabilityの設定
CapabilityはAppium Inspectorとモバイル端末との接続に必要な情報です。
JSON形式の文字列をコピー&ペーストすることで設定可能であるため、下記手順を参考に用途別に設定を行ってください。
4.1. 「JSONで表示」枠の下部にある鉛筆マークをクリック。
4.2. 編集モードとなるため、用途別のJSONテキスト(後述)または、T-DASHで起動ボタンをクリックした際にクリップボードに転記されたテキストを貼り付けて保存アイコンをクリック。
4.3. (後述のJSONテキストを利用する場合のみ)
JSONの内容を元に左側のフォームが表示されるため、かっこ書きの値を利用環境に合った値に変更する。
用途別のJSONテキスト
- Android端末でAPKファイルを起動する
{
"platformName": "Android",
"appium:automationName": "UiAutomator2",
"appium:udid": "(端末の名前)",
"appium:app": "(起動対象のapkファイルパス)"
}
- Android端末で既にインストール済みのアプリを起動する
{
"platformName": "Android",
"appium:automationName": "UiAutomator2",
"appium:udid": "(端末の名前)",
"appium:appPackage": "(起動対象のアプリパッケージ)",
"appium:appActivity": "(起動対象のアプリActivity)"
}
- Android端末でWebブラウザ(Chrome)を起動する
{
"platformName": "Android",
"appium:automationName": "UiAutomator2",
"appium:udid": "(端末の名前)",
"browserName": "Chrome"
}
5. アプリケーションの画面要素を取得
5.1. 「セッションを開始する」ボタンをクリックすると、Appium Inspector上にモバイル端末の画面がミラー表示される。
5.2. 上記のアイコンが選択されている状態でミラー表示されている画面をクリックすると、クリックした要素の情報が右側に表示される。
5.3. ロケーターエリアに記載されている内容が画面定義の値として利用できるため、使用するロケーターのセレクタ部をクリックしてコピーする。
5. Chromeブラウザの画面要素を取得
Appium InspectorでChromeブラウザの画面要素を取得する場合は手順が異なります。
5.1. 前述した用途別のJSONテキストからWebブラウザを起動するテキストをコピーし、Appium Inspectorに貼り付ける。
5.2. 「セッションを開始する」ボタンをクリックし、モバイル端末側で任意のWebページを検索しアクセスする。
5.3. 下記のアイコンをクリックし、Appium Inspector上のミラー表示を更新する。
5.4. 下記のアイコンをクリックし、Web/ハイブリッドモードに切り替えて、表示が「CHROMIUM」になっている事を確認する。
5.5. ミラー表示の画面をクリックすると、クリックした要素の情報が画面右側に表示されるため、XPathの文字列をクリックすることでWebサイトの「XPath」を取得することができる。
6. T-DASH画面定義への登録
6.1. T-DASHの画面定義を開き、任意の画面名で画面を登録する。
6.2. 値列にAppium Inspectorでコピーしたセレクタ文字列を貼り付ける。
【注意】
XPath以外のロケーターを利用する場合は、コピーしたセレクタ文字列の手前にロケーターを表す文字列を付与して登録する必要があります。
Appium Inspector ロケーター | T-DASH 値カラム入力文字列 |
-android uiautomator | android=(コピーしたセレクタ文字列) |
-ios class chain | chain=(コピーしたセレクタ文字列) |
-ios predicate string | predicate=(コピーしたセレクタ文字列) |
accessibility id | accessibility_id=(コピーしたセレクタ文字列) |
id | id=(コピーしたセレクタ文字列) |
セレクタ文字列のコピー&ペーストを繰り返し、「保存する」ボタンクリックで画面定義の登録が完了する。
補足:画面要素が取得できない(要素エラーでテスト実行に失敗する)場合
モバイルアプリの実装によってはXPath欄に表示されている内容が最適でない可能性があります。取得したセレクタでテスト実行が行えない場合は条件の変更などお試しください。また、XPath以外にもロケーターが利用可能である場合は、そちらの活用もご検討ください。