私は Cypress を使用して Web アプリケーションをテストしていますが、特定のページには、などGET /A
、複数回実行されるさまざまなエンドポイント リクエストがあります。GET /B
GET /A
すべてのリクエストが完了するまで待機し、ページが完全に読み込まれたことを保証するための Cypress のベスト プラクティスは何でしょうか。
すべてのリクエストが処理されるまで待つために多くのコマンドを使用したくありませんcy.wait()
。(各ページにはさまざまなリクエスト セットがあります)
ベストアンサー1
私の意見では、リクエストのストリームを心配しないのがベストプラクティスです。
代わりに適切なタイムアウトテストで必要な実際のページ要素クエリについて。
アプリとサーバー間の通信は、アプリの変更に伴って時間の経過とともに変化する可能性があり、呼び出しを 100% 処理しようとすると、多くのやり直しが発生します。
の直後の要素に対してアサートを開始しますcy.visit()
。リクエストがまだ進行中であるためにテストが失敗する場合は、timeout option
クエリの を増やします。
このアプローチはシンプルで効果的です。ページが 100% 読み込まれているという保証は必要なく、要素がテスト可能な状態にあるという保証のみが必要です。
単純なもので.should()
次のようになります:
cy.get(some-selector)
.should('have.text', 'text-loaded-by-request-call')