2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VALTES Advent Calendar 2024

Day 15

[T-DASH] Android モバイルアプリケーションをテスト自動化してみる

Last updated at Posted at 2024-12-14

はじめに

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

image.png

Java Development Kit (JDK)

Androidの機能を有効にするために、JDKが必要になる。

JDKのサイトより、JDK Development Kit windows版のinstaller最新版をダウンロードする
デフォルトの設定でインストーラーを進めれば、使えるようになる。

環境変数設定

使うにあたって、環境変数の設定が必要となる。

image.png

「システム環境変数の編集」を起動し、「環境変数」を選び、追加・編集を行う。

追加する環境変数

変数名 意味
JAVA_HOME Java install先 C:\Program Files\Java\jdk-21

image.png

編集・追加する環境変数

変数名 意味
Path 実行パス %JAVA_HOME%\bin

最後に動作確認をコマンドプロンプトで行う

java -version

image.png

Android Studio

Androidのアプリケーション操作などを行うために使う。

Android Studioのサイトより、最新版をダウンロードする
デフォルトの設定でインストーラーを進めれば、使えるようになる。

パスの取得・設定 (インストール後)

インストールが終わり、Android Studioを起動する。
最初、Android開発のwizardが出てきますが、そのままNextを押し続けて、Studioを起動する

image.png

起動後、左上のハンバーガーメニューをクリックすると、ヘッダーメニューが開きます。
そこから、File → Settings を選ぶ。

image.pngメモります

Settingsのモーダルが立ち上がります。
左のメニューから、 Languages&Frameworks -> Android SDK を選ぶと、Android SDK Locationの情報が表示されます。
そのパスを

image.png

環境変数設定

先ほどと同様に、環境変数設定を行います

追加する環境変数

変数名 意味
ANDROID_HOME Android SDK Location C:\Users\xxx.xxx\AppData\Local\Android\Sdk

編集・追加する環境変数

変数名 意味
Path 実行パス %ANDROID_HOME%\platform-tools
Path 実行パス %ANDROID_HOME%\emulator

環境変数設定後に、コマンドプロンプトを起動し、以下2つのコマンドを実行し、動くことを確認する

adb

image.png

emulator

image.png

appium

モバイルを操作するツールになります

npmコマンド(node.jsをインストールすると、使えるようになる)を用いてインストールする

npm install -g appium

image.png

最後に、コマンドプロンプトで以下コマンドを実行し、確認します

appium -v

image.png

driver install

Android を操作するためのdriverをinstallします

appium driver install uiautomator2

image.png

appium 起動

appiumを常駐させます

コマンドプロンプトで以下コマンドを実行します

appium --allow-insecure chromedriver_autodownload

image.png

Appium Inspector

モバイルアプリケーションのlocatorを取得するツールになります
今回、T-DASH ベータ版では、Locatorを取得する機能が付随されてなく、Appium Inspectorを使用する。

ここから最新のversion 「Appium-Inspector-YYYY.MM.DD-win-x64.exe」をダウントードして、インストールする。

appium inspectorを実行すると、以下のアプリケーションが立ち上がる。(動作確認後、閉じてよいです)

image.png

テストデバイスとアプリ

Android Studioのvertual 端末、もしくは実機どちらでも使うことができる。

実機を使う場合

以下記事を参考に、端末の設定で、「開発者向けオプション」→「USBデバッグ」を有効にする

Vertual端末

Android StudioのメニューからTools → Device Manager を選ぶ
Device Managerのメニューより「Add a new device → Create Virtual Device」を選ぶ

そこから、任意の端末を選択する。

image.png

※Resolutionが高い端末を選ぶと、メモリ不足により不安定になります

コマンドプロンプトで起動

Android StudioのDevice Managerから起動することができます。
その場合、メモリを多く消費します。
そのため、Android Studioなしで仮想端末を立ち上げることをおすすめします。

まず、仮想端末のリスを表示する

emulator -list-avds

image.png

このように、登録した仮想端末の一覧(Pixel6, Pixel_7_API_35)が表示される

次に、実際に起動するとき一覧のデバイス名を用いて、以下コマンドを実施する

emulator -avd  ${端末名}

image.png

このように、仮想端末のみ立ち上がる。

Android端末の認識

adbコマンドを使って、Androidの操作、操作できる端末をリストアップする
コマンドプロンプトで以下コマンドを実行する

adb devices

image.png

このように、端末のUDIDとステータスが表示される。
この例では現在2台のAndroid(仮想端末)が接続されています
device : 利用可能
offline : 利用不可能

状態はこの通りです。

deviceの状態になるように、再接続などを行う必要がある。
実機の場合、先ほどの記事に記載した通り、接続許可設定を行うと、deviceの状態になります。

尚、デバイスを特定する必要があるため、UDIDの情報(ex emulator-5554)をメモっておく必要がある

テスト自動化練習用デモアプリインストール

以下に、テスト自動化の練習用Androidデモアプリがある
こちらのapkファイルをダウンロードする

コマンドプロンプトで以下コマンドを実行して、apkファイルをUDIDで指定した端末にアンドロイドアプリケーションをインストールする

adb -s ${端末UDID} install ${apkファイル}

image.png

image.png

T-DASH

T-DASHを起動します

今回作るテスト

image.png

プロジェクト作成

Dashboardにて、「プロジェクト作成」をクリックし、以下設定を行う

項目 内容 詳細
プロジェクト種類 Androidアプリ[Beta版]
キー AndroidDemo 任意の文字列でOK
プロジェクト名 AndroidDemo 任意の文字列でOK
対象アプリ名 AndroidDemo 任意の文字列でOK
アプリ種別 インストール済みアプリ すでにインストールされているものを起動する方法
appPackage com.valtes.demo.login 起動するアプリのパッケージ名
appActivity .MainActivity 起動したアプリの開くページ

image.png

Appium Inspectorによる画面定義

T-DASHで「画面定義」を開く。
画面「Login」を作成し、最後に「端末を選択し画面要素を取得」をクリックする

事前準備がすべて正しく終わっていれば、以下のように「端末接続情報をコピーしてAppium Inspectorを起動」がクリッカブルになる。
複数端末を接続している場合、端末情報が複数リストされるため、使う端末を選ぶ。

image.png

「端末接続情報をコピーしてAppium Inspectorを起動」をクリックすると、appium inspectorが自動で起動される
起動後、右下のJSON Representationのエリアに、クリップボードに保存されている情報を貼り付けて保存すると、
以下のようにCapability Builderに情報が展開されます。

image.png

最後に、右下の「Start Session」をクリックする
すると、Android端末(仮想端末)に対象のアプリが起動し、Inspectorでは、端末と同じ情報が表示される。
Inspectorの中の要素をクリックすると(グリーンでハイライトされる)、Selected Elementにlocator情報(xpath)が表示される、
このxpathが画面要素の値(xpath)になります。

また、Androidを操作をし、appium inspectorと画面が同期していない場合、リフレッシュボタンをクリックすると、同期されます

image.png

最低限の画面定義は以下の通りです

要素名
ハンバーガーメニュー //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"]

image.png

テストケース作成

テストスイート、テストケースを作成し、テストケースをクリックする

以下、動作、画面、設定を行う

動作 画面名(設定値1) 要素名(設定値2) 設定値(設定値3)
アプリケーションを起動する
アプリケーション要素をタップする Login ハンバーガーメニュー
アプリケーション要素をタップする Login Login
アプリケーション要素のテキストをクリアし、テキストを入力する Login メールアドレス alice@example.com
アプリケーション要素のテキストをクリアし、テキストを入力する Login パスワード password
アプリケーション要素をタップする Login ログイン
アプリケーションに要素が表示されるまで待つ Login 名前 10
アプリケーション要素のテキストが一致するか検証する Login 名前 山田アリス
端末のスクリーンショットを保存する
アプリケーションを終了する

image.png

テスト実行

「端末を選択してテスト実行する」をクリックする

すると、「端末を選択し画面要素を取得」をクリックしたときと同様の、以下のような画面が立ち上がる。
端末を選択し、「テストを実行する」をクリックする。

image.png

実行が正しく終われば、以下のようにテスト結果を得ることができる。

image.png

さいごに

現在のT-DASH version 4.5ではAndroidモバイルアプリケーションはbeta版です。
そのため、以下の課題を含んでいる

  • 構築に時間がかかる
  • 画面要素の取得が別ツールを使うため、多少不便

この課題を早く解決してくれると、もっと使いやすくなると思います!

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?