テストの問題のトラブルシューティング

ブラウザーテストで発生した問題のトラブルシューティングのヒント

mablでは、出力ログやスクリーンショットなどを通じて、失敗したブラウザーテストを簡単にデバッグできます。この記事では、失敗したブラウザーテストのテスト出力を確認して問題を切り分けるためのアプローチを示します。

  1. スクリーンショットから始める
  2. ログの確認
  3. 上流の調査
  4. 最後に成功したテストの表示
  5. mabl Trainerでの再生
  6. タイミングの問題の確認

スクリーンショットから始める

テストが失敗すると、すぐにmablはスクリーンショットを取得します。テスト出力ページで、以下の内容が強調表示されます。

  • 失敗したステップ
  • 失敗したステップのアプリケーションのスクリーンショット
  • 失敗に関する簡単な説明
失敗したステップのスクリーンショットの確認

失敗したステップのスクリーンショットの確認

スクリーンショットには、失敗の診断を開始するために必要な、次のような情報が表示されます。

  • ネットワークエラーがあるかどうか
  • ページ上のエレメントが読み込まれたかどうか
  • 予期しないポップアップが表示されたかどうか
  • 失敗したステップに [visual change] というラベルがある場合、現在のスクリーンショットとベースラインのスリーンショット (横並びに表示される)
  • mablがアプリケーションに接続できなかったかどうか

失敗したステップにスクリーンショットがない場合や、アプリケーションが何らかのアクションを処理中の場合もあります。この場合、[Capture state of application after the test] というラベルのテストステップに関連付けられたスクリーンショットを確認すると、テスト失敗時のアプリケーションの状態を把握できます。

ログの確認

[LOGS] タブをクリックして、ステップ中に発生した事象についての詳細を確認します。[mabl Activity]、[Network]、[DOM]、[Console logs] など、[LOGS] セクションのタブをクリックすると、テスト失敗時に発生した事象について詳しく理解することができます。

失敗したステップの前のネットワークログの確認

失敗したステップの前のネットワークログの確認

テスト出力ログの詳細については、ブラウザーテスト出力に関する記事を参照してください。

mablがターゲットエレメントを見つけられない場合

mablは、アプリケーション内のエレメントを見つける柔軟なテストステップを作成するために、多くのインテリジェントな検索ストラテジーを使用します。mablがテストステップ中にエレメントを見つけられない場合、テスト出力mabl Trainerで問題に関する詳細情報を収集できます。
テスト出力
まず、ステップのスクリーンショットを確認します。

  • エレメントがない場合、このステップより前のステップを調査します。この問題は、テストの初期段階で発生していた可能性があります。
  • エレメントがあるにもかかわらずステップが失敗した場合、最近のクラウド実行が成功したかどうかを確認します。失敗したステップと成功したステップを比較すると、問題の原因になったと思われる相違点が見つけやすくなります。

[LOGS] タブをクリックして、ステップ中に発生した事象についての詳細を確認します。

  • mabl Activity logs: これらのログは、ターゲットエレメントの属性と、mablによるエレメントの検索方法を示します。
  • Element history: mablは、ネイティブに記録されたステップのエレメント履歴を追跡します。[Element history] をクリックすると、ターゲットエレメントの現在のプロパティが表示されます。エレメントの詳細やエレメント履歴が誤ったエレメントを対象としている場合は、ステップを再トレーニングしてください。
  • DOM: mablは、DOMに存在するエレメントに対してのみステップを記録できます。mablがステップを実行したときのアプリケーションのDOMスナップショットを確認するには、[DOM] タブをクリックします。
[mabl Activity] ログの確認

[mabl Activity] ログの確認

📘

Chrome DevToolsの使用

DOM内にターゲットエレメントがあるかどうかは、Chrome DevToolsでも確認できます。

  1. [ACTIONS] ⇒ [Download DOM snapshot] をクリックします。
  2. DOMスナップショットをChromeブラウザーのウィンドウで開きます。
  3. Chrome DevToolsを 右クリック > [Inspect] で開きます。
  4. Chrome DevToolsの [Elements] タブをクリックして、ページのHTMLを表示し、検索します。

Trainerでテストを開く
テスト出力を確認するだけでなく、mabl Trainerで検索ステップをトラブルシューティングすることもできます。

  • ステップに関する情報の入手: 問題のステップの [More actions] メニューをクリックします。[Show step info] を選択すると、エレメントタグ、innerText、XPathなど、ターゲットエレメントの詳細が表示されます。
Show step info (ステップの情報を表示)

Show step info (ステップの情報を表示)

  • ステップの再生: トラブルシューティングするステップの [More actions] メニューをクリックし、[Play through here] を選択します。このステップより前の段階で逸脱が始まった場合、逸脱が発生したステップを見つけ、そのステップを代わりにトラブルシューティングします。
Play through here (ここまで実行)

Play through here (ここまで実行)

  • ステップでエレメントが見えることを確認: エレメントが別のエレメントによって隠れる場合、ビューポート幅の変更を試します。エレメントが見える場合は、Configure Findの追加を試みます。ステップですでにConfigure Findが使用されている場合、Configure Findの属性がターゲットエレメントと一致することを確認します。

📘

mabl Trainerでのトラブルシューティング

mabl Trainerでの問題のトラブルシューティングの詳細については、mabl Trainerに関するFAQを参照してください。

上流の調査

mablが失敗したステップが、問題の原因となったステップであるとは限りません。以前のステップのスクリーンショットを調査すると、期待した動作を逸脱し始めた時点が失敗したステップより前かどうかを確認でき、問題を切り分けることができます。

たとえば、ドロップダウンを操作するステップに「最初のエレメントを見つける」という設定が行われている場合を考えてみます。そのドロップダウンの前に新しいドロップダウンが追加された場合、このステップは意図されたエレメントではなく、新しいドロップダウンを見つけます。この場合、mablはそのままそのエレメントプロパティを操作しますが、存在しないドロップダウンオプションをクリックしようとすると失敗します。

見つけるべきものがわからない場合は、以前のステップのうち、次のラベルが付いたものを調査してみてください。

  • Passed with warning: このラベルは、実行中に問題が発生したが、成功したステップを示します。後続のステップのスクリーンショットをチェックして、[Passed with warning] のステップが、期待されたアクションを実際に完了したかどうかを確認してください。
  • Auto-heal: ターゲットエレメントを見つけることができない場合、mablはターゲットエレメントに関する既知の内容に高い確度で一致するものを探します。ステップを完了させるためにmablが誤ったエレメントを使用した場合、テストは後続のステップで失敗する可能性があります。自動修復の詳細については、こちらを参照してください。

最後に成功したテストの表示

失敗したテストが以前は成功している場合、成功した最新のテストを見つけ、2つの実行の違いを比較します。

まず、成功した実行と失敗した実行の間で、テスト出力情報の概要を比較します。たとえば、成功した実行と失敗した実行の間で、環境、プラン、実行時間のいずれかが常に異なる場合、この情報に基づいて問題を切り分けることができます。

mabl Trainerでの再生

mablが基本認証などのブラウザーポップアップに遭遇した場合など、スクリーンショットや出力ログだけでは失敗の原因を特定できないことがあります。テストがどのように実行されているかをライブで確認する場合、mabl Trainerでテストを再生することが最適な方法の1つです。

mabl Trainerでテストを再生するには、次の手順を実行します。

  1. テスト出力ページで、[Edit test] ボタンをクリックします。
  2. ドロップダウンで [Launch and replay to failed step] を選択します。
失敗したステップまでmabl Trainerで再生

失敗したステップまでmabl Trainerで再生

mabl Trainerでテストを再生する間、Chrome DevToolsを開いてコンソールからのすべてのメッセージを表示すると、それらがテストに影響があるかどうかを判断できます。コンソールエラーに加えて、テストの実行が特に遅い場合は、[Network] タブも役に立ちます。

タイミングの問題の確認

待機時間は、アプリケーションとテスト環境によってかなり異なります。特定のテストまたはステップが断続的に失敗する場合、テスト環境で待機時間の急増が断続的に生じていないかどうかを確認してください。パフォーマンスの問題を調査する手順には、以下のようなものがあります。

  • スピードインデックス、つまりアプリケーションで認識された読み込み速度をチェックして、アプリケーションの読み込み時間が増えていないかどうかを確認します。
  • ステップトレースをダウンロードし、mablがステップを記録したときのステップのタイムラインを確認します。
  • wait untilステップを失敗したステップの前に追加して、待機時間の急増に対処します。

テスト環境にmablの負荷に耐える処理能力があることを確認

デフォルトでは、mablはプラン内のすべてのテストを並列に実行します。多くの同時ユーザーの処理を想定していないインフラストラクチャーにテスト環境がデプロイされている場合、あるいは予想外の失敗が発生した場合、次のトラブルシューティング手順をお勧めします。

テストの実行時間が予想より長い場合

ブラウザーテストの実行時間が予想より長い場合、テストパフォーマンスの最適化の指示に従って、問題をトラブルシューティングしてください。

mablチームへの連絡

上記を試しても失敗の原因を特定できない場合など、不明な点がある場合は、いつでもmablサポートチームまで (アプリケーション内から、またはメールにて) ご連絡ください。mablチームがサポートいたします。