テスト実行後、テストが失敗し、Testim が失敗の詳細を含むエラーメッセージを表示することがあります。一般的に、テストは 2 つの主な理由で失敗します。
- テスト対象のアプリケーションで欠陥が特定され、テストが期待される結果を返さなかった。
- テストの作成方法に欠陥があった。
Testim は、次のような異なる失敗タイプを識別します。
- 要素が表示されていない: 要素はページに存在するが表示されていない。
- 要素が見つからない: Testim がページ上で要素を検出できなかった。
- タブが見つからない: Testim がステップが動作する正しいタブを見つけられなかった。
- フレームが見つからない: Testim がステップが動作する正しいフレームを見つけられなかった。
- JavaScript エラー: JavaScript ステップまたは式の評価中にエラーが発生した。
- ブラウザを取得できない: グリッドで使用可能なブラウザがない、すべてのブラウザが使用中。
- ブラウザタイプがサポートされていない: 実行を要求したブラウザがグリッドでサポートされていない、またはモードがブラウザと一致しない。
- ページが利用できない: アプリケーションが実行場所から利用できない。
- テキスト設定に失敗: 入力テキストへのテキスト設定により、フィールドが空になった。
- クリックに失敗: クリックステップは成功したが、テスト対象アプリケーションがクリックを認識しなかった。
- 同時実行制限に達した: 同時に実行されたテストが多すぎる。
- テストがタイムアウト: テストの実行に時間がかかりすぎた。
- API ステップが失敗: API ステップが期待されたレスポンスを提供しなかった。
Testim は、次のような異なる警告タイプを識別します。
- ビューポートサイズにリサイズできない - 必要なビューポートサイズにリサイズできないことを示す警告が表示されます。
テスト失敗タイプ
テストが失敗すると、Testim はテストのどのステップが失敗したかを特定し、失敗タイプに関連するエラーメッセージを表示します。
1. Element not visible
このエラーは、ターゲット要素がページに存在するが表示されていない場合に発生します。
一般的な原因:
- ターゲット要素が現在ビューポート内にない。
- ターゲット要素の visibility が非表示または display: none に設定されている。
- テスト内の 1 つの要素のサイズ(高さまたは幅)が 0 に等しい。
- 高い z-index を持つオーバーレイが要素の上に配置されている。
- オブジェクトの opacity が 0 に設定されている。
どうすればよいか?
- サイドバイサイドのスクリーンショットを見て、テスト内で要素が表示されていたかどうかを判断します。
- アプリケーションの CSS を更新して、要素が非表示になっておらず、正しい不透明度、期待されるサイズと位置を持つようにします。
- レコーディングの解像度とテストを実行しているコンピューターの解像度が同じかどうかを確認します。そうでない場合は、テストを実行しているコンピューターの解像度を元のレコーディングと一致するように調整します。
- 要素がビューポートに表示されない場合は、それに到達するためにスクロールステップを追加する必要があるかもしれません。
- 要素は、マウスが別の要素の上にホバーしたときにのみ表示されることがあります(例:ドロップダウンメニュー)。ホバーステップは自動的に記録されないため、要素を表示するために記録する必要があるかもしれません。詳細については、ホバーステップを参照してください。
- ステップのプロパティで「要素が表示されている必要がある」チェックボックスをオフにします。時々、ビジネスロジックにとって表示検証が不要な場合があり、その場合はオフにできます。システムにオーバーレイがある場合は、迅速な解決策になります。詳細については、ターゲット要素プロパティの編集を参照してください。
- 失敗したステップの DOM を確認します。ステップが失敗すると、Testim は完全な DOM スナップショットを保存するため、後でデバッグできます。詳細については、失敗したステップの DOM の表示によるデバッグを参照してください。
2. Element not Found
このエラーは、Testim がページ上で要素を検出できなかった場合に発生します。
一般的な原因:
- 要素がページから削除された。
- 要素の名前または ID が変更された。
- 前のステップは成功したが、テストがターゲット要素が期待された画面に進まなかった。例えば、テストがログインのためにユーザー名とパスワードの入力を期待しているが、テストの記録されたログイン情報が正しくないか変更された場合。
- ページの読み込みが完了しなかった、または読み込みに時間がかかりすぎた。
どうすればよいか?
- サイドバイサイドのスクリーンショットを比較して、テスト内で要素が表示されていたかどうかを判断します。
- スクリーンショットの進行状況を表示して、前のステップがページへのナビゲーションに失敗したかどうかを判断します。
- すべてのフォーム送信情報が正しいことを確認します。詳細については、パラメーターを参照してください。
- ページの読み込みが完了しなかった、または読み込みに遅延がある場合は、待機ステップを追加して、Testim にターゲット要素が表示されるまで待機するように強制します。
- 要素が表示されているが認識されない場合は、ターゲット要素の改善を試してください。
- 失敗したステップの DOM を確認します。ステップが失敗すると、Testim は完全な DOM スナップショットを保存するため、後でデバッグできます。詳細については、失敗したステップの DOM の表示によるデバッグを参照してください。
3. Tab not Found
このエラーは、Testim がステップが動作する正しいタブを見つけられなかった場合に発生します。
一般的な原因:
- テストが新しいタブではなく、新しいブラウザウィンドウを開いた。
- 新しいタブを開くことがポップアップブロッカーによってブロックされた。
どうすればよいか?
- テストを実行するときに、ブラウザのナビゲーションバーの近くに赤い警告が表示される場合は、それをクリックして、そのドメインのポップアップを許可します。
- ブラウザの詳細設定とポップアップ設定を更新して、そのドメインの新しいブラウザタブとウィンドウを常に許可するようにします。
4. Frame not Found
このエラーは、Testim がステップが動作する正しいフレームを見つけられなかった場合に発生します。
一般的な原因:
- フレームが読み込まれなかった。
- 期待された iframe が存在しなくなった。
どうすればよいか?
- サイドバイサイドのスクリーンショットを比較して、テスト内でフレームが表示されていたかどうかを判断します。
- DOMを検査して、期待されたフレームが読み込まれたことを検証します。
- ターゲット要素が iframe 内になくなった場合は、失敗したテストステップのターゲット要素を再割り当てします。
5. JavaScript Error
このエラーは、JavaScript ステップまたは式が正しく評価されなかった場合に発生します。
一般的な原因:
- 「構文エラー」 - 正しくないJavaScript 構文。エラーは、カスタムステップのコードまたは JavaScript パラメーターのコードが原因である可能性があります。
- 「アサーション失敗」 - カスタム検証ステップが false を返した。
どうすればよいか?
- カスタムステップ/アクションまたは標準ステップのJS パラメーターの JavaScript コードを確認します。
- アサーションが失敗した場合は、このメッセージをより有益なエラーに置き換えます。詳細については、カスタム検証とアクションの追加を参照してください。
6. Could not get Browser
このエラーは、テスト実行時にグリッドで期待されたブラウザが利用できなかった場合に発生します。
一般的な原因:
- グリッドで使用可能なブラウザがない
- グリッド内のすべてのブラウザが使用中。
- テストで使用されているブラウザがグリッドで利用できない。
どうすればよいか?
- グリッドに実行しようとしたブラウザが含まれているかどうかを確認します。
- CLI の並列パラメーターを使用している場合は、グリッド上のすべての使用可能なブラウザを使用するテストを並列で実行していないことを確認します。
- グリッドにブラウザを追加します。
- すべてのテストがこのエラーで失敗する場合、グリッド設定に問題がある可能性があります。追加のヘルプについては、グリッドプロバイダーに連絡してください。
現在のグリッド構成の詳細については、グリッド管理を参照してください。
7. Browser Type is not Supported
このエラーは、サポートされていないブラウザでテストが実行された場合に発生します。
一般的な原因:
- グリッドでサポートされていないブラウザでテストが実行された。
- ブラウザと一致しないモードでテストが実行された。
どうすればよいか?
- ブラウザがグリッド上に存在することを確認します。存在しない場合は、追加のヘルプについてグリッドプロバイダーに連絡できます。
- IE、Edge、Firefox、Safari ブラウザは、selenium モードで実行する必要があります。CLI に「--mode selenium」が含まれていることを確認してください。
8. Page is not Available
アプリケーションが実行されている場所から利用できません。
一般的な原因:
- ベース URL が正しくない。
- アプリケーションがグリッドから利用できない。
どうすればよいか?
- テストのベース URLが正しいことを確認します。
- リモートグリッドで実行している場合は、テスト環境がグリッドからアクセス可能であることを確認します。
- 内部サーバー/localhost: トンネルを有効にするために連絡してください。
- 制限付きのパブリック環境(VPN/Geolocation): カスタム/サードパーティグリッドの IP をホワイトリストに追加するか、Testim グリッドユーザーの場合はTestim グリッド IPをホワイトリストに追加してください。
9. Failed to Set Text
このエラーは、テキスト設定ステップによりフィールドが空になった場合に発生します。
一般的な原因:
- ターゲット要素が見つからなかった。
- 入力フィールドが、ステップに割り当てられたテキストの形式を受け入れない。例えば、ステップが英数字のみを許可するフォームフィールドにメールアドレスを入力しようとしている場合。
どうすればよいか?
- サイドバイサイドのスクリーンショットを比較して、ターゲット入力フィールドがページ上に存在することを確認します。
- ターゲット要素が期待される入力を許可することを確認します。
- テキスト設定ステップのプロパティを更新して、「Native Events」を許可します。
10. Failed to Click
このエラーは、クリックステップが成功したが、クリックが実際には実行されなかった場合に発生します。
一般的な原因:
- Testim のクリックイベントがアプリケーションによって認識されなかった。
- クリックステップがすでに実行されている間にページが完全に読み込まれなかった(タイミングの問題)。
どうすればよいか?
- テストを手動で実行して、ターゲット要素がクリックできることを確認します。
- クリックステップの前に短い「スリープステップ」または「待機ステップ」を追加して、ページが完全に読み込まれ、クリック/テキスト設定イベントがトリガーされる準備ができていることを確認します。
- テキスト設定/クリックステップのプロパティを更新して、「Native Events」を許可/削除します。
11. Concurrency Limit Reached
これは、同時に実行されているテストが多すぎて、グリッドがすべての実行中のテストをサポートしていない場合に発生します。
一般的な原因:
- グリッドが、実行している同時テストの数をサポートしていない。
どうすればよいか?
- テストに使用可能なグリッドの数を増やします(グリッド管理を参照)。
- 並列で実行されているテストの数を減らします。
12. Test is Too Long (Time Out)
テストの完了に時間がかかりすぎる場合(デフォルトは 10 分)、テストはタイムアウトし、失敗します。
一般的な原因:
- テストに含まれるステップが多すぎる。
どうすればよいか?
- テストのステップ数を減らします。
- 必要に応じてデフォルトのテストタイムアウト(10 分)を上書きします: https://help.testim.io/docs/the-command-line-cli#test-timeout
13. API Step Failed
API ステップが失敗すると、API 呼び出しの誤った結果により、テストが正常に完了しない可能性があります。
一般的な原因:
- API エンドポイント URL が正しくない。
- API レスポンスが期待される結果を提供しなかった。
- ステップが API レスポンスステータスコード 0(CORS)のために失敗した。
どうすればよいか?
- エンドポイント URL を手動で確認します。
- API 呼び出しに追加のコードを実行し、検証エラーを表示して問題を特定するのに役立てます(API テストを参照)。
- API パラメーターが正しいことを確認します。
- ステータスコード 0(CORS)のために失敗した場合は、「Send via webpage」チェックボックスの選択を解除する必要があります。これにより、API 呼び出しがブラウザコンテキストの外部で送信され、CORS 制限がバイパスされます。
テスト警告タイプ
1. Could not resize to view-port size
テスト初期化中のテストの最初のステップで、必要なビューポートサイズにリサイズできないことを示す警告が表示される場合があります。
一般的な原因:
テストが実行されるモニターの最大解像度が、テスト構成で要求された解像度よりも小さいため、画面サイズの制限により要求されたサイズにリサイズできません。
どうすればよいか?
- 要求された画面サイズに適合する大きなモニターでテストを実行します
- テストの目的に影響しない場合は、構成を調整します。
一般的なトラブルシューティング手順
テスト失敗の原因を特定するのに役立つ 4 つの主なトラブルシューティング手順があります。
- スクリーンショットの比較: 成功した元のテストと最近失敗したテストのスクリーンショットを比較することで、失敗の原因となった UI の変更を特定できます。詳細については、サイドバイサイドスクリーンショットの比較を参照してください。
- 失敗したステップの DOM の確認: ステップが失敗すると、Testim は完全な DOM スナップショットを保存するため、後でデバッグできます。詳細については、失敗したステップの DOM の表示によるデバッグを参照してください。
- コンソールログ: エラーメッセージや警告、情報などのコンソールレベルの情報を表示します。詳細については、コンソールログを参照してください。
- ネットワークログ: ネットワーク接続とリソースのダウンロードまたはアップロードを追跡します。このログは、リソースが期待どおりに転送されていることを確認する必要がある場合に使用されます。詳細については、ネットワークログを参照してください。