UITestSD 外部オブジェクトを使用すると、
Panel オブジェクトなどのユーザーインターフェース (UI) の自動テストを開発できます。
この外部オブジェクトは、最初の
UI Test オブジェクトを作成するときに
ナレッジベースにロードされます。
なし
以下に示す (そして
UI Test オブジェクトで使用される) メソッドのいくつかは、
画面上のテキスト、
コントロール名、その他の詳細を示すパラメーターを受け取ります。以下は、ほとんどのメソッドが受け取るパラメーターの一般的な側面です。
コントロールが定義されている GeneXus オブジェクトのコントロールの名前です ( [ Control Name ] プロパティに表示)。
例: 「&numeric」(変数)、「CustomerName」(項目属性)、「Save」(ボタン)。
注: GeneXus では大文字小文字は区別されないため、重要ではありません。
コントロールがあるコンテナを示します。
場合によっては、コントロールの名前のあいまいさをなくす必要があります。たとえば、画面上のコンポーネントの場合、同じ名前のコントロールが 2 つある場合があります。
たとえば、「Grid1」グリッドの 2 行目にある「Button1」というボタンをタップする場合は、次のように記述します:
&app.Tap("Button1", "Grid1.item(2)") //&app は UITestSD 外部オブジェクトに基づく変数
注:
-
context では、コントロールが見つかる場所のパスを定義していますが、パスが完全である必要はありません。たとえば、上の例では、「Button1」ボタンがある場所は「Grid1Table」テーブルの内部でもあるかもしれませんが、それを指定する必要はありません。
- コレクションを表すコントロールの場合 (グリッド、水平グリッド、タブなどのコントロール)、コレクション内のエレメントを「item」で指定できます。
-
事前定義のコンテキスト: 多くの場合、コンテキストは「Grid1」などコントロール名によって異なりますが、コンテキストを事前定義できる場合もあります。アプリケーションバー内のコントロールがその場合に該当します。このために、
UITestingContext という名前の
列挙型ドメインが定義されています。
- このドメインは、メソッドのパラメーターの
context と同じデータタイプ (VarChar(40)) に基づいています。
- 次の 1 つの値のみを持っています: ApplicationBar (値: "applicationbar")。これは、アプリケーションバーのコンテキストを表します。この
context が指定された場合、そこで見つかるエレメントのみが検索されます。
- ApplicationBar のコンテキストが指定されている場合、表示されているエレメントの検索に加え、設計時にアプリケーションバーに配置されたエレメントも検索する必要があります。十分なスペースがないため、エレメントは柔軟なクライアントによってグループ化されていて、見つけるには追加のボタンを押す必要があります。
target
「ターゲット」または「アクションターゲット」とは、以下に対して行われる可能性のあるアクションを指します:
- controlName または
- 画面に表示される任意のテキスト。
注:
- 画面上のエレメントを検索する場合、まず controlName で検索し、見つからなければテキストで検索します。
- 条件を満たすコントロールが複数ある場合は、最初に見つかったものを使用します (非決定性)。
expected
このブール値のパラメーターは、画面上にテキストを期待するかどうかを示します:
- True を指定した場合、画面上にテキストを期待しています。テキストが画面上にない場合、テストは失敗します。
- 反対に、False を指定すると、テキストが画面上にある場合にテストが失敗します。
Android の場合、デバイスの
戻るボタンの操作をシミュレートします。iOS の場合は、戻るためのボタンの
タップになります。
Back()
画面上の指定ポイント (<target>) を
タップします。
Tap(<target> [ , <context> ] )
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
画面上の指定ポイント (<target>) を
ロングタップします。
LongTap(<target> [ , <context> ] )
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
画面上の指定ポイント (<target>) を
ダブルタップします。
DoubleTap(<target> [ , <context> ] )
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
デバイスでアプリケーションを実行する場合、実行中にアプリケーションダイアログではなくシステムダイアログが表示される場合があります。このようなダイアログは、ユーザーが特定のアクセス許可を許可または拒否できるようにシステムによって表示されます。このメソッドを使用すると、
UI Test オブジェクトでそのようなアクションを制御できます。
TapSystemAlertIfShown(<button> [ , <alertType> ] )
入力値の説明
- <button> - ダイアログが表示された場合にタップするボタンを表します。TapSystemAlertIfShown 関数がタップするボタンを定義する列挙型ドメイン SystemAlertButton に基づいています。
- <alertType> - 操作するアラートのタイプを表します。このパラメーターはオプションです。このタイプのアラートが表示されない場合は、表示される任意のシステムダイアログが考慮されます。
列挙型ドメイン
SystemAlertButton で提供される値:
- DoNotAllow
- Ok
- AllowOnce
- AllowWhenInUse
- AllowAlways
SystemAlertType は列挙型のドメインで、TapSystemAlertIfShown メソッドが操作できるさまざまなダイアログのタイプを表します。次の値を使用できます:
- Bluetooth
- Calendar
- Camera
- Contacts
- Location
- Microphone
- Photos
- Storage
- Any
例
//&app は UITestSD 外部オブジェクトに基づく変数
&app.Tap("GetLocation")
&app.TapSystemAlertIfShown(SystemAlertButton.AllowOnce,SystemAlertType.Location)
&app.Wait(3000)
&app.verifyMsg("Done")
&app.Tap("OK")
Edit タイプの指定のコントロールに値を入力します。
fill(<controlName>, <value> [ , <context> ] )
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
対応する
ピッカーを使用して、Date タイプのフィールドに値を入力します。
pickDate(<controlName>, <year>, <month>, <day>, [ , <context> ] )
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
対応する
ピッカーを使用して、DateTime タイプのフィールドに値を入力します。
pickDateTime(<controlName>, <year>, <month>, <day>, <hour>, <minutes>, [ , <context> ] )
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
対応する
ピッカーを使用して、Time タイプ (Date 部分を除く DateTime) のフィールドに値を入力します。
pickTime(<controlName>, <hour>, <minutes>, [ , <context> ] )
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
コントロール名で指定されたコンボボックスまたはラジオボタンの値リストから値を選択できます。選択する値は <value> パラメーターで指定します。
selectValue(<controlName>, <value> [ , <context> ] )
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
パラメーターで指定された方向に画面を
スワイプします。
スワイプの開始位置はパラメーターによって異なります。開始位置としてコントロールを指定するオプションもあります。指定がなかった場合、
スワイプは、画面上の固定位置から開始します (固定位置は方向によって異なります)。
Swipe(<direction> [ , <controlName> ] [ , <context> ] )
ここで <direction> は「Up」、「Down」、「Left」、「Right」のいずれかです。
- Up - デバイスの下端の中心 (境界線の数ピクセル上) から、または指定がある場合はそのコントロールから、上方向にスワイプします。
- Down - デバイスの上端の中心 (境界線の数ピクセル下) から、または指定がある場合はそのコントロールから、下方向にスワイプします。
- Left - デバイスの右端の中心 (境界線の数ピクセル左) から、または指定がある場合はそのコントロールから、左方向にスワイプします。
- Right - デバイスの左端の中心 (境界線の数ピクセル右) から、または指定がある場合はそのコントロールから、右方向にスワイプします。
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
注: iOS では、
スワイプの開始位置を指定できません。常にコントロールの中心から行われます。
指定されたミリ秒間、待機します。
wait(<milliseconds>)
検証では、準拠していなかった場合にテストケースが不合格になります。条件を満たす場合、テストは不合格になりません。
テキストが画面上にあるかどうかを検証します。
コンテキストの指定がなかった場合、画面上のあらゆる位置が対象です。
verifyText(<string> [ , <expected> ] [ , <context> ] )
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
グリッド上の行数が指定の値と等しいかどうかを検証します。
verifyGridRowsCount(<grid control name>, <value> [ , <expected> ] [ , <context> ] )
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
指定された (ブール値) <値> を使用して、チェックボックスタイプのコントロールが選択されているかどうかを検証します。
verifyCheckbox(<controlName>, <value> [ , <expected> ] [ , <context> ] )
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
コントロールに指定の値があるかどうかを検証します。
verifyControlValue(<controlName>, <value> [ , <expected> ] [ , <context> ] )
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
コントロールが編集可能か読み取り専用かを検証します。
verifyControlEnabled(<controlName> [ , <expected> ] [ , <context> ] )
iOS では、この検証は常に成功します。理論的には、Xcode の API に
isEnabled プロパティがありますが、テストするケースでは毎回
true が返されます。
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
GeneXus の
msg コマンドで送信された特定のメッセージを示すアラートがあるかどうかを検証します。
この検証は、タイトルおよびアラートのテキストの両方で行う必要があります。
verifyMsg(<string> [ , <expected> ] )
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
コントロールが画面上に表示されているかどうかを検証します。
verifyControlVisible(<controlName> [ , <expected> ] [ , <context> ] )
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
コントロールまたは画面全体のスクリーンショットを取得し、参照画像と比較します。比較に失敗した場合は、テストに失敗します。
verifyScreenshot(<reference> [ , <controlName> [ , <context> ] ] )
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
参照パラメーターは文字列タイプであり、現在のテスト内の参照画像を識別します。
注: この関数の使用には、追加のセットアップが必要です。詳細については、「
Visual testing in Native Mobile applications」を参照してください。
verifyScreenshot メソッドは、
GeneXus 17 Upgrade 7 以降で使用できます。
VerifyControlEnabled と似ていますが、テストが失敗するのではなく、ブール値を返します。
コントロールが見つからない場合、アサーション付きでコマンドが失敗します。
IsControlEnabled(<controlName> [ , <context> ] ): Boolean
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
VerifyControlVisible と似ていますが、テストが失敗するのではなく、ブール値を返します。
コントロールが見つからない場合、関数は False を返します。
IsControlVisible(<controlName> [ , <context> ] ): Boolean
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
画面にアラートが表示されると True を返します。
注: たとえば、通知を受け取るアクセス許可を要求している場合など、システムアラートは考慮されません。
IsShowingMessage(): Boolean
コントロールの値を取得し、文字列を返します。
コントロールが見つからない場合、アサーション付きでコマンドが失敗します。
GetControlValue(<controlName> [ , <context> ] ): VarChar
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
VerifyCheckbox と似ていますが、チェックボックスの値のブール値を返します。
コントロールが見つからない場合、アサーション付きでコマンドが失敗します。
GetCheckboxValue(<controlName> [ , <context> ] ): Boolean
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
VerifyGridRowsCount と似ていますが、グリッドの行数の整数を返します。
グリッドが見つからない場合、アサーション付きでテストが失敗します。
GetGridRowsCount(<controlName> [ , <context> ] ): Numeric(8)
「
ほとんどのメソッドが受け取るパラメーター」を参照してください
画面にアラートが表示された場合に、アラートのテキストを取得します。
VerifyMsg と似ています。
アラートが見つからない場合、アサーション付きでコマンドが失敗します。
GetMessageText(): VarChar
ブール値と、オプションでメッセージを受け取ります。ブール値が False の場合、テストが失敗し、失敗の理由としてメッセージングが使用されます。
VerifyCondition(<boolean value> [ , <message> ] )