ブラウザテストが自己メンテナンス型である理由

エンドツーエンドのテストに関連する最大の困難の1つは、不安定さです。エンドツーエンドのテストでは、実際にアプリケーションの問題がなくても、フロントエンドのチームによる何らかの変更により、テストで使用された識別子がうまく機能しなくなることが原因で、テストが失敗することがあります。

ブラウザテストのターゲット要素

Datadog の Synthetic ブラウザテストでは、ロケーターをターゲット要素に活用するアルゴリズムを通じて、この問題を解決します。テストが、特定の XPath または CSS セレクターで要素を探すのではなく、特定の要素の操作(チェックアウトボタンなど)を検索する際、ブラウザテストでは複数の異なる参照ポイント(XPath、テキスト、クラス、近くにあるその他の要素など)を使用してこれを見つけます。このような参照ポイントがロケーターとなり、それぞれの要素を定義します。

UI の小さな変更により要素が修正されると(たとえば別の場所へ移動)、テストはこの変更により影響を受けなかった参照ポイントに基づき、自動的にその要素の場所を把握します。テストが成功すると、ブラウザテストは壊れたロケーターを更新された値で再計算、または「自己回復」します。これにより、シンプルな UI 変更のせいでテストは破壊されず、アプリケーションの UI の進化に自動的に適応することができます。

ブラウザテストで、予期しない変更を検証しないようにするには?

アサーションが大変重要である理由は、このためです。アサーションにより、テストで調べているジャーニーに関連して予期される行動と予期されない行動を定義することができます。

特定の識別子を使用したい場合はどうしたらいいですか?

特殊なユースケース(要素のコンテンツに関わらず、ドロップダウンメニューの nth 要素をクリックする場合など)では、ユーザー定義のロケーターを使用するステップが有用なことがあります。

この場合、ブラウザテストのステップの高度なオプションで利用可能な User Specified Locator 機能を使用します。

その他の参考資料