アサーション

mablのアサーションの概要

アサーションはテストの基盤となる要素であり、「アプリケーションが期待どおりに動作しているか?」を確認することができます。

ブラウザーテストは、大まかに言えば次の要素で構成されています。

  1. クリック、テキスト入力、URLの表示など、テスト対象アプリケーションのアクション
  2. これまでのアクションによりアプリが期待どおりの状態にあるかを検証するアサーション

たとえば、アプリケーションにログインする一連のアクションの後、アサーションを使用して、一連のアクションの結果アプリが期待どおりの状態にあるかを検証します。次の例は、ログイン後にアサーションを使用して、ページにユーザー名が表示されることを検証しています。

アサーションの作成

アサーションを作成する際、テスト実行の特定のステップでアプリケーションが正しい状態かどうかを確認するためのロジックを定義します。mablのブラウザーテストでは、次の項目に対してアサーションを実行できます。

各アサーションタイプの詳細と手順については、上記のリンクを参照してください。

586

エレメントアサーションの例

📘

アサーションの文字数制限

アサーションの文字数制限は300文字です。300文字を超えるエレメントにアサーションを行った場合、mablは最初の300文字しかアサーションに使用しません。

アサーションと自動修復

自動修復が成功することを確認

mablブラウザーテストのすべてのステップで、mablが記録している属性を使ってターゲットエレメントを見つけられない場合、mablは自動修復を使用して類似のエレメントを検索します。自動修復の基本的なルールは次のとおりです。

  • テストに成功した場合、自動修復の結果は保存される。
    *テストに 失敗した場合、自動修復の結果は保存されない。

アサーションはこのプロセスの重要な部分です。アサーションは自動修復されたテストのステップが正しいエレメントを使用することを確認することができます。また、アサーションによって誤ったエレメントを使ってテストが自動修復されることを避けることができます。アサーション (およびテスト) に失敗した場合、自動修復の結果は保存されません。

アサーションと要素の検索

エレメントが存在する ("is present")、または存在しない ("is not present") ことを確認するアサーションを作成する場合、要素の検索を使ってどの属性が最も重要なのかの指定と、ターゲットエレメントが表示されるまでmablがWaitを行う時間を指定することができます。(上限は15分)

要素を検索を設定するときには、ターゲットエレメントが時間内に見つからない場合にmablが自動修復を使用して検索対象を広げるかどうかも指定する必要があります。

"is present" または "is not present" アサーションで自動修復を使用する場合、次の点に留意する必要があります。

  1. "is present" アサーションが別のエレメントに自動修復された結果、要素の検索の設定と一致した場合、このアサーションは成功と判定されます。
  2. "is not present" アサーションが別のエレメントに自動修復された結果、要素の検索の設定と一致した場合、このアサーションは失敗と判定されます。

この動作は誤った成否判定につながる可能性があります。アサーションが別のエレメントに自動修復されることを望まない場合は、[Disable Auto-heal] を選択してください。

大文字と小文字の区別

[大文字と小文字の区別をしない] をチェックすると、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種類が利用できます。

ソフトアサーションは、テストの実行を止めずに、要素のラベルやスタイルなど非機能的な部分をアサーションするのに便利です。

アサーション時の「比較」

アサーションタイプに比較 (greater than, less than, greater than or equals, less than or equals) が含まれ、かつアサーションの値が数値で以外の場合、mabl はその文字の Unicode の値の大小で比較します。
Unicodeでは、下記の順に値が大きくなります。

  • 数字(123...)
  • 大文字(ABC...)
  • 小文字(abc...)