はじめに
T-DASHでは、ここ最近、Android モバイルアプリケーションの対応をした。
ただ、まだベータ版らしいので、簡単にすぐには使えない。
そこで、必要な準備からテスト実行までを書き下ろしてみた。
サンプルアプリを使って、簡単テスト自動化スクリプトを作成・実行できるまでのフローをまとめてますので、T-DASHを使ってるユーザーで、Androidモバイルアプリケーションの自動化を試してみたい人に役立ててればと思います。
環境
- windows10 PC
- Android vertual or 実機
- T-DASH version 4.5.000
※同様なセットアップすればMacでも動くと思います
事前準備
2024/12/01現在、T-DASHのAndroid モバイルアプリケーションはベータ版対応である。
そのため、T-DASH以外にもいくつかのアプリケーションを手動でインストールする必要がある
Node.js
appiumのinstallや実行につかうツール。
基本的に最新版をダウンロードし、デフォルトの設定でインストーラーを進めれば、使えるようになる。
最後に動作確認をコマンドプロンプトで行う
node -v
Java Development Kit (JDK)
Androidの機能を有効にするために、JDKが必要になる。
JDKのサイトより、JDK Development Kit windows版のinstaller最新版をダウンロードする
デフォルトの設定でインストーラーを進めれば、使えるようになる。
環境変数設定
使うにあたって、環境変数の設定が必要となる。
「システム環境変数の編集」を起動し、「環境変数」を選び、追加・編集を行う。
追加する環境変数
変数名 | 意味 | 例 |
---|---|---|
JAVA_HOME | Java install先 | C:\Program Files\Java\jdk-21 |
編集・追加する環境変数
変数名 | 意味 | 例 |
---|---|---|
Path | 実行パス | %JAVA_HOME%\bin |
最後に動作確認をコマンドプロンプトで行う
java -version
Android Studio
Androidのアプリケーション操作などを行うために使う。
Android Studioのサイトより、最新版をダウンロードする
デフォルトの設定でインストーラーを進めれば、使えるようになる。
パスの取得・設定 (インストール後)
インストールが終わり、Android Studioを起動する。
最初、Android開発のwizardが出てきますが、そのままNextを押し続けて、Studioを起動する
起動後、左上のハンバーガーメニューをクリックすると、ヘッダーメニューが開きます。
そこから、File → Settings を選ぶ。
Settingsのモーダルが立ち上がります。
左のメニューから、 Languages&Frameworks -> Android SDK を選ぶと、Android SDK Locationの情報が表示されます。
そのパスを
環境変数設定
先ほどと同様に、環境変数設定を行います
追加する環境変数
変数名 | 意味 | 例 |
---|---|---|
ANDROID_HOME | Android SDK Location | C:\Users\xxx.xxx\AppData\Local\Android\Sdk |
編集・追加する環境変数
変数名 | 意味 | 例 |
---|---|---|
Path | 実行パス | %ANDROID_HOME%\platform-tools |
Path | 実行パス | %ANDROID_HOME%\emulator |
環境変数設定後に、コマンドプロンプトを起動し、以下2つのコマンドを実行し、動くことを確認する
adb
emulator
appium
モバイルを操作するツールになります
npmコマンド(node.jsをインストールすると、使えるようになる)を用いてインストールする
npm install -g appium
最後に、コマンドプロンプトで以下コマンドを実行し、確認します
appium -v
driver install
Android を操作するためのdriverをinstallします
appium driver install uiautomator2
appium 起動
appiumを常駐させます
コマンドプロンプトで以下コマンドを実行します
appium --allow-insecure chromedriver_autodownload
Appium Inspector
モバイルアプリケーションのlocatorを取得するツールになります
今回、T-DASH ベータ版では、Locatorを取得する機能が付随されてなく、Appium Inspectorを使用する。
ここから最新のversion 「Appium-Inspector-YYYY.MM.DD-win-x64.exe」をダウントードして、インストールする。
appium inspectorを実行すると、以下のアプリケーションが立ち上がる。(動作確認後、閉じてよいです)
テストデバイスとアプリ
Android Studioのvertual 端末、もしくは実機どちらでも使うことができる。
実機を使う場合
以下記事を参考に、端末の設定で、「開発者向けオプション」→「USBデバッグ」を有効にする
Vertual端末
Android StudioのメニューからTools → Device Manager を選ぶ
Device Managerのメニューより「Add a new device → Create Virtual Device」を選ぶ
そこから、任意の端末を選択する。
※Resolutionが高い端末を選ぶと、メモリ不足により不安定になります
コマンドプロンプトで起動
Android StudioのDevice Managerから起動することができます。
その場合、メモリを多く消費します。
そのため、Android Studioなしで仮想端末を立ち上げることをおすすめします。
まず、仮想端末のリスを表示する
emulator -list-avds
このように、登録した仮想端末の一覧(Pixel6, Pixel_7_API_35)が表示される
次に、実際に起動するとき一覧のデバイス名を用いて、以下コマンドを実施する
emulator -avd ${端末名}
このように、仮想端末のみ立ち上がる。
Android端末の認識
adbコマンドを使って、Androidの操作、操作できる端末をリストアップする
コマンドプロンプトで以下コマンドを実行する
adb devices
このように、端末のUDIDとステータスが表示される。
この例では現在2台のAndroid(仮想端末)が接続されています
device : 利用可能
offline : 利用不可能
状態はこの通りです。
deviceの状態になるように、再接続などを行う必要がある。
実機の場合、先ほどの記事に記載した通り、接続許可設定を行うと、deviceの状態になります。
尚、デバイスを特定する必要があるため、UDIDの情報(ex emulator-5554)をメモっておく必要がある
テスト自動化練習用デモアプリインストール
以下に、テスト自動化の練習用Androidデモアプリがある
こちらのapkファイルをダウンロードする
コマンドプロンプトで以下コマンドを実行して、apkファイルをUDIDで指定した端末にアンドロイドアプリケーションをインストールする
adb -s ${端末UDID} install ${apkファイル}
T-DASH
T-DASHを起動します
今回作るテスト
プロジェクト作成
Dashboardにて、「プロジェクト作成」をクリックし、以下設定を行う
項目 | 内容 | 詳細 |
---|---|---|
プロジェクト種類 | Androidアプリ[Beta版] | |
キー | AndroidDemo | 任意の文字列でOK |
プロジェクト名 | AndroidDemo | 任意の文字列でOK |
対象アプリ名 | AndroidDemo | 任意の文字列でOK |
アプリ種別 | インストール済みアプリ | すでにインストールされているものを起動する方法 |
appPackage | com.valtes.demo.login | 起動するアプリのパッケージ名 |
appActivity | .MainActivity | 起動したアプリの開くページ |
Appium Inspectorによる画面定義
T-DASHで「画面定義」を開く。
画面「Login」を作成し、最後に「端末を選択し画面要素を取得」をクリックする
事前準備がすべて正しく終わっていれば、以下のように「端末接続情報をコピーしてAppium Inspectorを起動」がクリッカブルになる。
複数端末を接続している場合、端末情報が複数リストされるため、使う端末を選ぶ。
「端末接続情報をコピーしてAppium Inspectorを起動」をクリックすると、appium inspectorが自動で起動される
起動後、右下のJSON Representationのエリアに、クリップボードに保存されている情報を貼り付けて保存すると、
以下のようにCapability Builderに情報が展開されます。
最後に、右下の「Start Session」をクリックする
すると、Android端末(仮想端末)に対象のアプリが起動し、Inspectorでは、端末と同じ情報が表示される。
Inspectorの中の要素をクリックすると(グリーンでハイライトされる)、Selected Elementにlocator情報(xpath)が表示される、
このxpathが画面要素の値(xpath)になります。
また、Androidを操作をし、appium inspectorと画面が同期していない場合、リフレッシュボタンをクリックすると、同期されます
最低限の画面定義は以下の通りです
要素名 | 値 |
---|---|
ハンバーガーメニュー | //android.widget.ImageView[@content-desc="その他のオプション"] |
Login | //android.widget.TextView[@resource-id="com.valtes.demo.login:id/title" and @text="Login"] |
メールアドレス | //android.widget.EditText[@resource-id="com.valtes.demo.login:id/etEmail"] |
パスワード | //android.widget.EditText[@resource-id="com.valtes.demo.login:id/etPassword"] |
ログイン | //android.widget.Button[@resource-id="com.valtes.demo.login:id/btLogin"] |
名前 | //android.widget.TextView[@resource-id="com.valtes.demo.login:id/tvName"] |
テストケース作成
テストスイート、テストケースを作成し、テストケースをクリックする
以下、動作、画面、設定を行う
動作 | 画面名(設定値1) | 要素名(設定値2) | 設定値(設定値3) |
---|---|---|---|
アプリケーションを起動する | |||
アプリケーション要素をタップする | Login | ハンバーガーメニュー | |
アプリケーション要素をタップする | Login | Login | |
アプリケーション要素のテキストをクリアし、テキストを入力する | Login | メールアドレス | alice@example.com |
アプリケーション要素のテキストをクリアし、テキストを入力する | Login | パスワード | password |
アプリケーション要素をタップする | Login | ログイン | |
アプリケーションに要素が表示されるまで待つ | Login | 名前 | 10 |
アプリケーション要素のテキストが一致するか検証する | Login | 名前 | 山田アリス |
端末のスクリーンショットを保存する | |||
アプリケーションを終了する |
テスト実行
「端末を選択してテスト実行する」をクリックする
すると、「端末を選択し画面要素を取得」をクリックしたときと同様の、以下のような画面が立ち上がる。
端末を選択し、「テストを実行する」をクリックする。
実行が正しく終われば、以下のようにテスト結果を得ることができる。
さいごに
現在のT-DASH version 4.5ではAndroidモバイルアプリケーションはbeta版です。
そのため、以下の課題を含んでいる
- 構築に時間がかかる
- 画面要素の取得が別ツールを使うため、多少不便
この課題を早く解決してくれると、もっと使いやすくなると思います!