はじめに
テスト対象アプリに対してUIテストを実施する場合、ある特定の操作をおこなったあと、次の画面に遷移するまで待機し、画面が表示されたタイミングで次の操作をおこなう必要があります。
このような場合、UIテスト自動化ツール のRanorex(※)では、次の画面遷移を待機するアクションが用意されています。
※Ranorex は、デスクトップ/Web/モバイルアプリの自動化に対応しています。
テスト対象アプリのUI操作を記録し、テストの作成/実行を可能とします。
アクションの種類
Ranorex の待機アクションとして、以下の3種類があります。
- Delayアクション:設定した時間を待機するアクション
- Wait Forアクション:任意のオブジェクトの存在・消失状態を待機するアクション
- Invoke Action – WaitForDocumentLoaded() アクション:Web ページのロードを待機するアクション
使用例① Delayアクション
テスト実行時に特定の操作のタイミングで一定時間待機したい場合には、Delayアクションを使用します。
使用例②でご紹介するWait Forアクションでは、オブジェクトの存在・消失状態などで次のアクションに移るため、その時によって待機時間が異なりますが、Delayアクションでは、設定した時間分必ず待機したうえで次のアクションに移ります。
以下の例では、Delayアクションにて10秒間待機したあと、ログインボタンを押下します。
使用例② Wait Forアクション
Ranorex のWait Forアクションには、以下の種類が用意されています。
- Exists:対象のオブジェクトが存在するまで待機します
- NotExists:対象のオブジェクトが消失するまで待機します
- AttributeEqual:属性が特定の値と等しくなるまで待機します
- AttributeRegEx:正規表現を利用し、特定の属性の照合値が一致するまで待機します
たとえば、ある一定の処理がおこなわれたあとに有効化するボタンが存在する場合、有効化される前にボタンが押下されてしまうケースがあります。この場合、実際に特定のボタンは押下されておらず、テストが失敗してしまいます。
上記の問題に対しては、Wait For - AttributeEquel アクションにて、特定のボタンが有効化されることを待機することで解決できます。
以下の例では、Wait For - AttributeEquel アクションにて、ログインボタンのEnabled属性がtrueになるまで待機します。
※Enabled属性は、HTML要素を有効化する属性です。Enabled属性がtrueの場合、対象の要素は有効化された状態となります。
これにより、ログインボタンが有効化されるまで待機し、対象のボタンが有効化されたあと、ログインボタンを押下します。
使用例③ Invoke Aciton - WaitForDocumentLoaded()
Webアプリケーションをテストする場合、画面のロードに時間がかかってしまうと、対象のアプリケーション画面が完全に表示されていない状態で次の操作が実施されてしまうケースがあります。この場合、次の操作は期待通りに実施されず、テストが失敗してしまいます。
上記の問題に対しては、Invoke Action - WaitForDocumentLoaded()アクションにて、画面のロードを待機することで解決できます。
Invoke Action - WaitForDocumentLoaded()アクションのRepository itemには、対象のWebページのルートエレメント(DOM)を指定します。
これにより、指定したWebページの画面のロードを待機し、画面のロードが完了したあとに次の操作に移ります。
まとめ
今回は、Ranorex で用意されている待機アクションについて紹介しました。
テスト対象のアプリケーションを自動化する場合、必要に応じて各操作のタイミングを調整するが必要ありますが、Ranorex では様々な待機アクションが用意されているため、安定性の高いテストを作成することができます。
Ranorex をご利用いただく場合には、必要に応じて待機アクションをご利用ください。