https://nine-num-98.blogspot.com/2019/05/appium.html
Appiumの仕組み(アーキテクチャ)について説明しております。記事中でも紹介しましたが、Appiumの詳細については、以下の本などが参考になると思います。
Manoj Hans
オライリージャパン
売り上げランキング: 466,285
オライリージャパン
売り上げランキング: 466,285
さて。今回はAppiumの具体的なコマンドやそれを利用したテストコードについて触れてみたいと思います。Appiumの開発環境は色々あるみたいですが、以前もご紹介した、フリーウェア、Katalon Studioを導入したうえで、コードを書いてみるのが一番簡単かなと。
以下では、AndroidでChromeブラウザを開き、URLに入力したページ(Yahoo)の要素を検証する簡単なテストケーススクリプトについて紹介します。
開発環境
■OS・Windows 10 Home 64bit
■アプリケーション、フレームワーク
・Katalon Studio (Version 5~)
・Appium (Version 1.16.0)
■プログラミング言語
・Groovy/Java
■モバイルデバイス
・OS
Android 9
・テスト対象アプリ
chrome
環境準備
■Appium&Katalon Studio インストール手順
以下の記事からインストール手順を抜粋して掲載します。
https://nine-num-98.blogspot.com/2019/05/katalon-studio.html
・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
■PCとAndoridデバイス接続準備
・Androidデバイス条件:
Android OS 6.0 ~
・デバイスを「開発者モード」に設定:
[設定]の[端末詳細]にある[ビルド番号]を連続タップ。
「開発者モード」になればOK。
・USBデバッグをONに設定:
[設定]の[開発者向けオプション]の[USBデバッグ]をONにする。
・PCとAndroidデバイスをUSBケーブルで接続
■Apkファイル準備
Androidデバイス実機から、ChromeブラウザアプリをPC内に取得します。
・PCのコマンドプロンプトを開く
・接続されているデバイスを確認:
adb devices
・chromeのapkを確認:
adb shell pm list packages -f | findstr chrome package:〇〇〇.apk=com.android.chrome
コマンド結果中の、〇〇〇の部分がApkファイル名です。
・ApkファイルをPCに転送:
adb pull 〇〇〇.apk
これで、PCにApkファイルが転送されます。
上記手順については以下のサイトを参考にしました。
Android 実機から apk を探して取得 - clock-up-blog
Appiumスクリプト
■テストケース
ブラウザアプリ(Chrome)を開き、↑のページ(Yahoo)を表示させ、ページ中要素のテキストを検証します。処理をある程度細分化して並べると以下の通りです。
(1)ブラウザアプリを起動
(2)URLバーをタップ
(3)URLを入力してページを表示
(4)検証対象の要素が表示されるまで待機
(5)要素のテキストを取得
(6)テキストが期待値と一致するかを検証
(7)要素の有(数)を確認
(8)要素の無を確認
(9)下にスワイプして(7)の要素が無になるか検証
(10)ブラウザアプリを終了
■スクリプト
Katalon StudioテストケースのScript view画面に記述したコードを記します。
※Katalon StudioのScript view, Manual view等の基本事項は以下を参照ください
https://docs.katalon.com/katalon-studio/docs/create-test-case.html#tutorial-1
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile import com.kms.katalon.core.webui.driver.WebMobileDriverFactory as WebMobileDriverFactory import io.appium.java_client.TouchAction import io.appium.java_client.android.AndroidDriver as AndroidDriver import io.appium.java_client.android.AndroidElement as AndroidElement import io.appium.java_client.touch.offset.ElementOption //(1)ブラウザアプリを起動 apk_path = "C:\\Users\\Users\\Documents\\Katalon Studio\\App\\chrome.apk" Mobile.startApplication(apk_path, false) AndroidDriver driver = WebMobileDriverFactory.getDriver() //(2)URLバーをタップ AndroidElement url_bar = driver.findElementById("com.android.chrome:id/url_bar"); TouchAction action = new TouchAction(driver) action.tap(ElementOption.element(url_bar)).perform(); //(3)URLを入力してページを表示 url = "http://yahoo.co.jp" url_bar.sendKeys(url + "\\n"); //(4)検証対象の要素が表示されるまで待機 logo_xpath = "//hierarchy/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.view.ViewGroup[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.webkit.WebView[1]/android.view.View[1]/android.view.View[1]/android.view.View[2]/android.view.View[1]/android.view.View[1]" AndroidElement yahoo_logo = driver.findElementByXPath(logo_xpath) //(5)要素のテキストを取得 String text = yahoo_logo.getText(); println(text) //(6)テキストが期待値と一致するかを検証 assert text == "Yahoo! JAPAN" //(7)要素有(数)を検証 Listelms = driver.findElementsByXPath(logo_xpath) num_elms = elms.size() assert num_elms == 1 //(8)要素無を検証 List no_elms = driver.findElementsById("no_element") num_no_elms = no_elms.size() assert num_no_elms == 0 //(9)下にスワイプして(7)の要素が無になるか検証 action.longPress(PointOption.point(0, 800)).moveTo(PointOption.point(0, 0)).release().perform() List elms2 = driver.findElementsByXPath(logo_xpath) num_elms = elms2.size() assert num_elms == 0 //(10)ブラウザアプリを終了 Mobile.closeApplication()
テストスクリプトの解説記事に続きます。
https://nine-num-98.blogspot.com/2020/04/appium-katalon-02.html