アサーションはテストの基盤となる要素であり、「アプリケーションが期待どおりに動作しているか?」を確認することができます。
ブラウザーテストまたはモバイルアプリテストは、大まかに言えば次のように構成されています:
- クリック、テキスト入力、URLの表示など、テスト対象アプリケーションのアクション
- これまでのアクションによりアプリが期待どおりの状態にあるかを検証するアサーション
たとえば、アプリケーションにログインする一連のアクションの後、アサーションを使用して、一連のアクションの結果アプリが期待どおりの状態にあるかを検証します。次の例は、ログイン後にアサーションを使用して、ページにユーザー名が表示されることを検証しています。
この記事では、トレーナーでの記録とアサーションの設定に関する概要を提供します。
アサーションの作成に関する一般的なガイダンスについては、アサーションのベストプラクティスに関する記事をご覧ください。
アサーションの作成
アサーションを作成する際、テスト実行の特定のステップでアプリケーションが正しい状態かどうかを確認するためのロジックを定義します。mablのブラウザーテストでは、次の項目に対してアサーションを実行できます:
- ページ上のエレメント
- このページのURL - ブラウザテストのみ
- Cookie - ブラウザテストのみ
- 変数
- メール
- ファイルのダウンロード
各アサーションタイプの詳細と手順については、上記のリンクを参照してください。
エレメントアサーションの例
アサーションの文字数制限は300文字です。300文字を超えるエレメントにアサーションを行った場合、mablは最初の300文字しかアサーションに使用しません。
アサーションの設定
要素、変数、URL、および Cookie アサーションに対して次の設定を構成できます。
大文字と小文字の区別
[大文字と小文字の区別をしない] をチェックすると、mablはアサーションを行う際、大文字と小文字の区別を行いません。
たとえば、アプリケーション内のある部分では名前がすべて大文字で表示され ("SMITH")、別の部分では一部だけが大文字の場合 ("Smith")、大文字と小文字を区別しないアサーションを使用すると、両方の領域に同じ名前が表示されているかどうかを検証できます。
大文字と小文字が存在するものの、その規則が標準的な英語とは大幅に異なる文字や言語の場合、ーションの条件を満たすかどうかに オプションは予想外の動作をする可能性があります。
たとえば、一部の言語では大文字Iの上に点がある "İ" が使用されていますが、大文字と小文字の区別を無効にした場合、この文字は必ずしも、上に点がある小文字の "i" と同等とは見なされません。
アサーション失敗時のオプション
テストでアサーションが失敗した場合の動作には、下記のオプションが指定できます。
オプション | 動作 |
---|---|
Fail immediately | アサーションに失敗した場合、失敗としてテスト実行を中断します。既定の設定です。 |
Fail at end of test | アサーションに失敗してもテスト実行を継続し、テスト完了後にアサーションの失敗を記録します。今回追加された新しいオプションです。 |
Continue on failure & mark warning | アサーションに失敗した場合、警告つき成功としてステップを成功扱いにしてテストを継続します。以前の「失敗時も続行」オプションと同等の動作です |
ソフトアサーションとして、"Fail at end of test"(アサーション失敗をテスト終了時に表示) と、"Continue on failure & mark warning" (アサーションに失敗しても警告を表示してテストを継続) の2種類が利用できます。ソフトアサーションは、テストの実行を止めずに、要素のラベルやスタイルなど非機能的な部分をアサーションするのに便利です。
Trainer再生中の動作
失敗オプションは、ローカルとクラウドの実行に適用されます。
Trainerでステップを再生する場合、失敗したアサーションが [fail immediately](直ちに失敗にする)または [fail at end of test](テスト終了時に失敗にする)と指定されていると、Trainerの再生は直ちに停止します。[continue on failure & mark warning](失敗時も続行&警告を付ける)」と指定されたアサーションは常に成功し、Trainerの再生を停止することはありません。
アサーション時の「比較」
アサーションタイプに比較 (greater than, less than, greater than or equals, less than or equals) が含まれ、かつアサーションの値が数値で以外の場合、mabl はその文字の Unicode の値の大小で比較します。Unicodeでは、下記の順に値が大きくなります。
- 数字(123...)
- 大文字(ABC...)
- 小文字(abc...)