失敗したテストのデバッグ - ベストプラクティス

mablでは、出力ログやスクリーンショットなどを通じて、失敗したテストを簡単にデバッグできます。

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

テストが失敗すると、すぐにmablはスクリーンショットを取得します。失敗したテストの出力ログを開くと、失敗したステップが表示され、右側に失敗のスクリーンショットが表示されます。また、失敗についての簡単な説明も表示されるので、ログを詳しく調べる前に概要を把握できます。

そのスクリーンショットをざっと眺めるだけでも、失敗したテストについて多くのことを知ることができます。404エラーがあるか、mablが表示したポップアップがあるか、ページ上の要素が読み込まれたかなどの情報がわかります。多くの場合、スクリーンショットには、失敗を迅速かつ簡単に診断するために必要なすべての情報が表示されています。

要素を見つけるためにmablが試みた戦略の理解

mablの出力ログには、操作する必要のある要素を見つけるために、mablが試みて成功または失敗したすべての戦略の内訳が表示されます。出力ログのステップを展開すると、これらの戦略が左側に白い (i) を付けて下に表示されます。また、出力ログの左上にある小さな時計のアイコンをクリックすると、タイムスタンプがサーバー時刻から実行開始以降の経過時間に切り替わるので便利です。

これらをまとめて使用すると、問題の要素をmablが見つけるのにかかった時間、あるいは見つけられなかったためにかかった時間を正確に把握できるため、デバッグに非常に役立ちます。失敗すると、クラス、ID、XPath、hrefなど、要素の検索に使用した正確な情報も表示されます。

「Tried to click, but timed out waiting for... (クリックしようとしたが、待機中にタイムアウトになった...)」

「Tried to click, but could not find the... (クリックしようとしたが、見つからなかった...)」

  • 要素がまだ存在することを確認します。

  • mablがステップを実行しようとしたときに、アプリケーションが正しい状態であったことを確認します。

  • テストに、マウスカーソルを合わせることで起動されるアクションが含まれている場合は、新しいテストを作成し、カーソルを合わせる操作が含まれるすべてのステップの前にある [Capture hovers] を必ず有効にします。マウスカーソルを合わせる操作の使用の詳細については、こちらを参照してください。

  • mablに問い合わせる

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

失敗したテストが以前に成功したことがある場合、出力ページの失敗ステータスの下に、「view last passed test」というメッセージが表示されます。このリンクをクリックするか、できれば新しいタブで開くと、最後の成功ステータスに移動します。ここから、2つの実行の違いを簡単に比較できます。

上流の調査

mablが失敗したステップが、必ずしも問題の原因となったステップであるとは限りません。たとえば、ドロップダウンを探すステップが「最初の要素を見つける」に設定されていて、その前に新しいドロップダウンが追加された場合、ステップは意図した要素ではなくそのドロップダウンを見つけます。この場合、mablはそのままその要素を適切に操作しますが、存在しないドロップダウンアイテムをクリックしようとすると失敗します。このアプローチは、エラーが発生したより広範なコンテキストを判断するのに特に役立ちます。

自分で再現

mablが基本認証などのブラウザーポップアップに遭遇した場合など、スクリーンショットや出力ログだけでは失敗の原因を特定できないことがあります。テストがどのように実行されているかをライブで確認する場合、出力ページの上部にある [Edit test] ボタンを使用するのが最適な方法の1つです。Trainerのウィンドウの上部にある再生ボタンを使用して、各ステップを再生します。Trainerのこの場所では、mablがテストを実行する際に発生する問題を正確に確認できます。

テストが特に長く、多くのアサーションなどが含まれている場合は、矢印キーを使用してテストを進めると便利です。Trainerのウィンドウにカーソルを合わせ、上下キーを押すだけで、各ステップを再生せずに出力間を移動できます。

Chrome DevToolsを開く

テストを編集して失敗の原因を探るときは、mabl Trainerのウィンドウに加えて、Chrome DevToolsを開いておくと便利です。コンソールからのすべてのメッセージを表示し、それらがテストに影響があるかどうかを簡単に判断できます。コンソールエラーに加えて、テストの実行が特に遅い場合は、ページの読み込み時間を ([ネットワーク] タブで) 確認するのも便利です。

リンククローラーの失敗

「An unknown error occurred during the execution of a test operation (テスト操作の実行中に不明なエラーが発生した)」

  1. mablに問い合わせる

「Failure attempting to load page (ページを読み込もうとして失敗した)」

  1. プランとテストのターゲットURLがパブリックインターネットからアクセス可能であることを確認します。

  2. エラーメッセージの上に記載されている特定のページに、パブリックインターネットからアクセスできることを確認します。

  3. SSL証明書の有効期限が切れていないこと、訪問先ドメインと一致していること、信頼できるCAによって署名されていることを確認します。

mablチームへの連絡

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