モバイルアプリテスト自動化のOSS、Appiumについては先日触れました。今回はAppiumをさらに使いやすくするGUIツール「Katalon Studio」についてになります。
本ツールはWindows等のPCにインストールするフリーウェアであり、Android、iOSのモバイルアプリ、Webアプリのテスト作業を自動化することを目的としたGUIツールです。(すごくざっくりいえば、Seleium IDEのAppium版)
概要については以下のページが参考になります。
Katalon Studioとはどんなソフトウェアか - Qiita
具体的な使い方についてはこちらが参考になります。
Katalon Studioでテストを自作した - Qiita
モバイルアプリのテストプログラムをGUIで視覚的、直感的に作成するツールは色々調べてはみましたが(Appium Studioなど)
・使いやすさ
・多機能性
・柔軟性
・継続的なアップデート
・無料ソフトウェア
などの点からみても、Katalon Studioが一番優れているように見受けられました。AppiumとKatalon Studioのインストール・セットアップ方法については、以下の通りです。
Appium&Katalon Studio インストール手順
・Node.js インストール:以下からダウンロードしてPCにインストール
https://nodejs.org/ja/download/
・Appium インストール:
コマンドプロンプトを開き、以下のコマンドを実行してインストール
npm install –g appium
・Katalon Studio インストール:
以下サイトからダウンロードしてPCにインストール。
https://www.katalon.com/
※メールアドレス登録等のサインアップが必要。
※初回起動時にメールアドレス&パスワードでのログインが必要。
【参考サイト】
Katalon Studioをインストールした - Qiita
・Katalon StudioにAppiumパスを設定:
ツールバーにある[Window]で[Katalon Studio Preferences]をクリック。
メニューの[Katalon]→[Mobile]を表示。
[Appium Directory]欄にappiumのインストール先パスを設定する。
(例)C:\Users\○○○\AppData\Roaming\npm\node_modules\appium
Katalon Studioの基本的な使い方については、先にあげたリンク先のページを参考いただくとして、自分が実際に使ったなかで、特に盲点だったり便利だった機能についてとりあげます。
※以下、Katalon Studioの基本的な概念や操作(テストケース、テストスイートなど)を理解している方向けの内容になります。
ドライバーインスタンスの取得
Katalon Studioで、モバイルデバイスを自動操作する場合、まず最初にテストスクリプトに記述するのが「Start Application」というコマンドの実行です。これ以降、Katalon Studioで準備されているコマンド(Tap、Verify Element Textなど)を使って、テストスクリプトを作成していきます。
一方で、Katalon Studioの標準コマンドではなく、Appiumで定義されているAPI(Find Elementなど)を使用することも可能です。
API Documentation - Appium
この場合、「Start Application」実行後に作成されたセッションを、ドライバーインスタンスとして取得する必要があります。これにはWebMobileDriverFactoryというクラスを使用します。
(参考)
・Retrieve mobile's session | Katalon Docs
・WebMobileDriverFactory (Katalon Studio API Specification)
Katalon StudioのAPIでドライバーインスタンスの取得は、以下のコマンドをテストケースの「Script」画面で直接記述すればOKです。
import com.kms.katalon.core.webui.driver.WebMobileDriverFactory as WebMobileDriverFactory import io.appium.java_client.android.AndroidDriver as AndroidDriver AndroidDriver driver = WebMobileDriverFactory.getDriver()
Manoj Hans
オライリージャパン
売り上げランキング: 466,285
オライリージャパン
売り上げランキング: 466,285
ちなみに、Appium APIについては上記の本などが参考になります。
Android文字入力、トースト表示検証の設定
Androidアプリの自動操作においては、文字入力やトーストに表示される文字列の確認などを行いたい場合があると思われます。このときAppiumサーバーの初期設定(Desired Capabilities)において、以下の項目を設定する必要があります。メニューバーにおいて、[Project]→[Settings]→[Desired Capabilities]→[Mobile]→[Android]を選択し、以下の設定をテーブルに追加します。
(1) unicodeKeyboard | Boolean | true
→Androidデバイスで自動で文字入力を実施するために必要
(2) automationName | String | UIAutomator2
→トースト表示の文字列を取得、検証する際には、自動化フレームワーク「UIAutomator2」を指定
(3) resetKeyboard | Boolean | true
→テスト実行後に、文字入力自動化設定を解除し、手動操作に戻したいときに指定すると便利
トーストに表示される文字列は、以下のようなコードで取得できます。
import io.appium.java_client.android.AndroidDriver as AndroidDriver AndroidDriver driver = WebMobileDriverFactory.getDriver() AndroidElement toast = driver.findElement(By.xpath('//android.widget.Toast[1]')) String txt = toast.getAttribute('name') println(txt)
以上を、Katalon Studioのスクリプトに直接記述すればOKです。
adb shell コマンドで別アプリを実行
Katalon Studioは、基本的に起動できるアプリは「Start Application」で指定する1アプリのみです。ただし、それとは別に任意のアプリを起動する1つの方法として、ADB(Android Debug Bridge)のコマンドの活用があります。# adbコマンドの詳細については割愛します。
Runtimeクラスを利用し、以下のコマンドを「Script」に直接記述すれば、「Start Application」で指定した以外のアプリを起動可能です。
String cmd = "adb shell am start -a android.settings.DEVICE_INFO_SETTINGS" Runtime.getRuntime().exec(cmd)
↑の例では、設定画面の一画面が立ち上がります。
コレクションによる連続試験、並列試験
Katalon Studio の機能の中に、「Test Suite Collection」と呼ばれるものがあります。Test Suite Collection | Katalon Docs
詳細は割愛しますが、個々のTest Case(テストケース)を集めた一連の集まりをTest Suite(テストスイート)といいます。Katalon Studioではさらにテストスイートを複数組み合わせた「Test Suite Collection」(以下、コレクション)
このコレクションは、以下の有用な機能を持っています。
(1)デバイスを切り替えながら連続試験
-Sequentialモード
(2)複数デバイスを同時に並列試験
-Parallelモード
(1)については、例えば複数のスマホを切り替えて別々に連続試験をする。また、PCとスマホで連携する何らかのサービスアプリケーションのテストをする際、PCで何らかの事前準備を操作後、スマホ側のアプリを操作するといったケースで活用できます。
(2)については、同一アプリのテストを複数デバイスで同時テストしたいときに、活用できます。特にAndroidデバイスにおいては、様々なメーカーのものが存在しますので、同じアプリを効率的にテストしたい場合に重宝すると思います。
その他
この他、実際にKatalon StudioとAppiumを使ったモバイルテスト自動化の例を、以下の記事に記しました。参考になれば幸いです。・Custom Keywordsを使用して、スクリーンショットをソケット通信
https://nine-num-98.blogspot.com/2020/03/katalon-studio-ai-01.html
・実機テスト例、準備方法
https://nine-num-98.blogspot.com/2020/04/appium-katalon-01.html
・Katalon Studio上で、Appiumコマンドを活用
https://nine-num-98.blogspot.com/2020/04/appium-katalon-02.html