If Object オペレーションを使用することにより、オブジェクトの状態によって条件分岐を行い、操作を変更することが可能です。
例えば、アプリケーション上に特定のオブジェクトが "存在している場合" は操作を行い、存在していない場合は、異なる操作を行うケースに用いられます。
今回の例では、Web サイトにログインする際に表示されるユーザー認証のダイアログの存在の有無で条件分岐を行います。
ダイアログが表示される場合は、ログイン情報を入力し、別のセッションで既にログインしている場合は、ダイアログが表示されませんので、ダイアログに対する操作をスキップして、その次の操作を行います。
通常のテストシナリオでは、ダイアログへの操作が設定されている場合、ダイアログが表示されない時点でエラーとなりますが、上記のように条件分岐を行うことで、オブジェクトの状態を判断して、テストを続行させることが可能となります。
TestComplete のキーワードテストを開き、Operations の Test Actions から、"If Object" を選択し、条件分岐を行う箇所に挿入します。
If Object ダイアログが表示されますので、"Drag the target to point to the object" をダイアログにドラッグし、オブジェクトの情報を取得します。
オブジェクトの情報を取得後に [Next] ボタンをクリックします。
Select Condition のステップでは、条件を指定します。
Exists: 存在する場合
Not exists: 存在しない場合
Enabled: 有効な場合
Disable: 無効な場合
Visible: 表示されている場合
Invisible: 表示されていない場合
今回は、Exists (存在する場合) を選択して、[Finish] ボタンをクリックします。
キーワードテストのシナリオに If Object オペレーションが追加されましたので、次に条件に一致する場合の処理を設定します。
以下のスクリーンショットで、3 行目(browser) から 7 行目 (text) までを If Object にネストします。
ドラッグで移動することも可能ですが、browser の行を選択し、右矢印をクリックすることで、If Object 配下にネストすることができます。
ネスト前
ネスト後
このケースでは、テストの実行時にユーザー認証のダイアログが存在する場合は、If Object 配下の操作(ユーザー名、パスワードの入力、OK ボタンの押下)が実行されます。
存在しない場合は、TestComplete が一定時間検索しますが、その後次の操作 (8 行目の Navigate) に移行します。
以下は実行結果のログですが、上のスクリーンショットは、ユーザー認証のダイアログが表示された場合で、下のスクリーンショットは、ユーザー認証のダイアログが表示されない場合です。
If Object オペレーション自体は、動作の正否を判定しませんので、どちらも成功となりますが、ユーザー認証のダイアログが表示されない場合でも、エラーとせずにテストが実行されていることをご確認いただけるかと思います。
今回は Web アプリケーションを例に説明いたしましたが、TestComplete から認識できるオブジェクトであれば、デスクトップアプリやモバイルアプリにも適用が可能です。
オブジェクトの状態で条件分岐を行いたい場合に活用していただければと思います。
詳細については、以下のヘルプの内容もご参照ください。
https://support.smartbear.com/testcomplete/docs/keyword-testing/reference/test-actions/if-object.html
※ Google Chrome で開き、右クリックのコンテキストメニューの「日本語に翻訳(T)」 機能をご使用いただくと、機械翻訳された内容でご覧いただけます。