テストの同期化
関連:GUI テストとスクリプト GUI コンポーネント
テストを実行するとき、対象アプリケーションが常に同じ速度で応答するとは限りません。たとえば、次のような場合に数秒かかることがあります。
-
進捗表示バーが 100% に到達するまで
-
ステータスを示すメッセージが表示されるまで
-
ボタンが有効になるまで
-
ウィンドウまたはポップアップ・メッセージが開くまで
テストを同期化して、特定のステップを実行する前にアプリケーションの準備が整うまで UFT One に待機させることで、これらのタイミングの問題に対処します。
テストの同期化に使用できるオプションはいくつかあります。
同期化ポイントの追加
アプリケーション内のオブジェクトが特定の状態になるまでステップまたはチェックポイントの実行を UFT One に待機させるには、同期化ポイントを挿入して、テストを一時停止します。
たとえば、Advantage Online Shopping の Web サイトでテストを記録する場合を考えてみましょう。販売者にフィードバックを送信するとします。メール・アドレスを入力してから、[Subject]編集ボックスに提案やフィードバックを入力します。[Email]編集ボックスと[Subject]編集ボックスに入力すると、[Send]ボタンが使用可能になります。しかし、後でメール・アドレスやフィードバックを変更したい場合があります。
同期ポイントがないと、テスト実行で[Send]ボタンが再び表示される前に、UFT One がボタンをクリックしようとするかもしれません。その場合、テストは失敗します。
同期化ポイントを実行するためには、UFT One が指定のオブジェクトを識別できなくてはなりません。オブジェクトが表示されるまで UFT One を待機させるには、Exist または Wait ステートメントを使用します。
例: [Send]ボタンに同期化ポイントを挿入すると、次のような画面が表示されます。
エディタでは、次のように表示されます。
Browser("Advantage Shopping").Page("Advantage Shopping").WebEdit("emailContactUs").Set "123@google.com"
Browser("Advantage Shopping").Page("Advantage Shopping").WebEdit("subjectTextareaContactUs").Set "the laptop is good"
Browser("Advantage Shopping").Page("Advantage Shopping").Sync
Browser("Advantage Shopping").Page("Advantage Shopping").WebButton("send_btnundefined").WaitProperty "visible", true, 10000
Exist および Wait ステートメント
Exist ステートメント、Wait ステートメント、あるいはその両方を使用して、ウィンドウが開くかオブジェクトが表示されるまで UFT One を待機させることができます。ループ内でこれらのステートメントを組み合わせて、テストを続行する前にオブジェクトが現れるまで UFT One を待機させることができます。
たとえば、次のステートメントは、[フライト テーブル]ダイアログ・ボックスが表示されるまで UFT One を 20 秒待機させます。
blnDone=Window("フライト予約").Dialog("フライト・テーブル").Exist
counter=1
While Not blnDone
Wait (2)
blnDone=Window("フライト予約").Dialog("フライト・テーブル").Exist
counter=counter+1
If counter=10 then
blnDone=True
End if
Wend
詳細については、 「[同期化ポイントの追加]ダイアログ・ボックス」を参照してください。
タイムアウトの設定
一般に、オブジェクトが現れるまで、あるいはブラウザに特定のページが表示されるのを UFT One が待機する時間が十分でない場合は、テストの標準のオブジェクト同期化タイムアウトおよびブラウザ・ナビゲーション・タイムアウトの値を増やします。
-
オブジェクト表示を UFT One が待機する時間の最大値を変更するには、[ファイル]>[設定]>[実行]表示枠の[オブジェクト同期化のタイムアウト]を変更します。
-
Web ページが表示されるまで UFT One が待機する時間を変更するには、[ファイル]>[設定]>[Web]表示枠の[ブラウザ ナビゲーションのタイムアウト]を変更します。