Trainerでローコードオプションを使ってモバイルテストの目的を達成できない場合、mablではスニペットを使用してテストをカスタマイズすることができます。スニペットはテストステップとして実行されるカスタムスクリプトです。モバイルテストでは、AppiumまたはJavaScriptを使ってカスタムスニペットを記述できます。この記事では、AppiumまたはJavaScriptのスニペットのユースケースについて説明します。
Appiumスニペット
Appiumを使ってカスタムコードスニペットを記述し、テスト対象のAndroidまたはiOSアプリケーションを操作します。Appiumスニペットは、エレメントのダブルタップなど、Trainerで提供されているネイティブのローコード機能でアプリケーション固有のエッジケースをカバーするのが難しい場合に便利です。
Appiumスニペットは再利用可能なスニペットとして保存し、他のモバイルテストで再利用することができます。
Appiumスニペットの例については、GitHubリポジトリをご覧ください。
Appiumスニペットでモバイルアプリケーションと対話するには、まずスぺニットがconst driver = await mabl.mobile.getDriver()
を使用してドライバーオブジェクトを取得する必要があります。たとえば、以下のスニペットは、doubleTapTargetByXPath()
を非同期で呼び出し、ドライバーオブジェクトにアクセスし、.findElement()
メソッドを使用して要素を特定し、その要素をダブルタップします。
function mablJavaScriptStep(mablInputs, callback, element_text = 'New account form') { doubleTapTargetByXpath(`//*[@text="${element_text}" or @content-desc="${element_text}" or @label="${element_text}"]`) .then((result) = callback(`Tapped element with text: "${element_text}"`)) .catch((error) = callback(error)); } async function doubleTapTargetByXpath(element_xpath) { const driver = await mabl.mobile.getDriver(); try { const target = await driver.findElement("xpath", element_xpath); await target.click(); await target.click(); } catch (error) { return error; } }
役に立つリソース
Appiumスニペットを作成する際は、以下のリソースが役に立つかもしれません。
- Appiumドライバーオブジェクトから利用できるメソッドのリストについては、Appium ドキュメントをご覧ください。
- XPathでAppiumスニペットの要素をターゲットにする場合、mabl Trainerのデバッグビューにより、XPath式で使用する属性を特定できます。
JavaScriptスニペット
JavaScriptスニペットでは、モバイルアプリケーションのエレメントの操作は行いません。JavaScriptスニペットは、変数生成、操作、外部APIへのクエリなど、他の高度なユースケースを実現する場合に便利です。
JavaScriptスニペットを保存すると、他のモバイルテストやブラウザーテストでJavaScriptスニペットを再利用できます。
次のJavaScriptスニペットでは、事前定義された "mablJavaScriptStep" 関数を使って、textパラメーターの値を小文字に変換します。
function mablJavaScriptStep(mablInputs, callback,text = "{{@text}}") { let lowerCase = text.toLowerCase() callback(lowerCase) }
詳細情報
スニペットの詳細については、次の各ページを参照してください。
- スニペットの操作: テストでのスニペットの作成、インポート、および使用方法
- スニペットエディター: スニペットエディターの各部分の機能の概要
- JavaScriptスニペット: JavaScriptスニペットの紹介
- mablスニペットリポジトリ: mablおよびmablコミュニティによって作成されたスニペットが格納されたGitHubリポジトリ
- JavaScriptスニペットの例
- mablでの日付の操作: GetDateComponents.jsスニペットを使用して日付の形式を設定する方法