タイムアウト設定

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

このガイドでは、JavaScript、TypeScript、および Java 向けの Axe Watcher のタイムアウト設定を構成する方法について説明します

Not for use with personal data

Axe Watcher でアクセシビリティテストを実行する際、特に複雑なページや遅いネットワーク、資源が限られた CI/CD 環境でタイムアウトに遭遇することがあります。このガイドでは、テストを正常に完了させるためにタイムアウト値を設定する方法を説明します。

note

Watcher の Java 実装はカスタムタイムアウトをサポートしていませんが、タイムアウトの必要性を減らすためのいくつかの戦略があります。Java のタイムアウト問題に対する回避策を参照してください。

Watcher のタイムアウトを理解する

Axe Watcher はテスト実行中に Deque のサーバーと通信し、ページの複雑さに応じて所要時間が異なる分析操作を行います。4 つの操作には設定可能なタイムアウトがあります。

  • analyze: ページのアクセシビリティを分析するために許可される時間 (デフォルト: 5000ms)
  • flush: 結果を Axe Developer Hub に送信するために許可される時間 (デフォルト: 5000ms)
  • start: 自動分析を再開するために許可される時間 (デフォルト: 2000ms)
  • stop: 自動分析を一時停止するために許可される時間 (デフォルト: 5000ms)

Watcher でタイムアウトエラーが発生した場合、次のようなメッセージが表示されます。

Error: Watcher could not send results to the server. To resolve this problem, adjust your `timeout.flush` property within your configuration or see [Troubleshooting](https://docs.deque.com/devtools-for-web/wa-troubleshooting) for more troubleshooting guidance.

JavaScript および TypeScript の構成

@axe-core/watcher パッケージを使用する JavaScript および TypeScript プロジェクトでは、AxeConfiguration オブジェクト内の timeout プロパティを通じてタイムアウトを構成できます。

基本的なタイムアウト構成

const config = playwrightConfig({
  axe: {
    apiKey: process.env.API_KEY,
    projectId: process.env.PROJECT_ID,
    timeout: {
      analyze: 10000,  // 10 seconds
      flush: 15000,    // 15 seconds
      start: 5000,     // 5 seconds
      stop: 10000      // 10 seconds
    }
  }
});

オーバーライドしたいタイムアウトのみ指定する必要があります。省略した値はデフォルトが使用されます。

JavaScript/TypeScript の重要な考慮点

Watcher のタイムアウト値は、テストフレームワーク独自のタイムアウトとは独立しています。タイムアウトの失敗が発生する場合は、両方を調整する必要があるかもしれません。以下の例では、Playwright のタイムアウトを Watcher のタイムアウトに合わせて設定する方法を示します。

// In your Watcher config
timeout: {
  analyze: 45000,
  flush: 20000
}

// Adjust the timeout for a single Playwright test.
test('basic functionality test', async ({ page }) => {
  test.setTimeout(45000);
  // ...
});

コマンドを連鎖させている場合は、操作の合計所要時間を考慮に入れて、全体のテストタイムアウトを設定してください。

Java の構成

Java Watcher は現在、カスタムタイムアウトをサポートしていません。 Java 実装のタイムアウト値は、初期の JavaScript/TypeScript の値に設定されています。

Java のタイムアウト問題に対する回避策

Java では直接タイムアウトを設定できませんが、次のアプローチを検討してください。

  1. ページの複雑さを最適化する: 分析中にページが一貫してタイムアウトする場合、テストをより小さく、より焦点を絞ったテストケースに分割し、ページ状態 をより少なく分析することを検討してください。

  2. ネットワーク状態を確認する: 特に CI/CD パイプラインでは、テスト環境と Deque のサーバー間の安定したネットワーク接続を確保してください。

  3. Deque サポートに連絡する: タイムアウトの問題が持続する場合は、Deque のサポートチームに連絡してください。Java Watcher の将来のバージョンで設定可能なタイムアウトが含まれる可能性があります。

いつタイムアウトを増やすか

次の場合、タイムアウト値を増やすことを検討してください。

  • 大規模な DOM 構造 (数千の要素) を持つページをテストする場合
  • 資源が制限された CI/CD 環境でテストを実行する場合
  • 高遅延のネットワーク接続でテストを実行する場合
  • 複雑な DOM を持つページを分析する場合
  • 複数の並列テストプロセスを実行する場合

タイムアウトエラーのトラブルシューティング

タイムアウトエラーが発生している場合は:

  1. どの操作がタイムアウトしているかを特定する: エラーメッセージでは、analyzeflushstart、または stop のどれであるかが示されます。

  2. 他の問題を確認する: タイムアウトは時々、ネットワークの問題、誤ったプロキシ設定、または完全に読み込まれないページのような潜在的な問題の兆候であることがあります。

  3. トラブルシューティングガイドをレビューする: 追加のガイダンスについては、トラブルシューティングを参照してください。

まとめ

言語 タイムアウト構成 デフォルト値
JavaScript/TypeScript timeoutオブジェクトを通じて完全に構成可能 analyze: 5000ms、flush: 5000ms、start: 2000ms、stop: 5000ms
Java 現在構成不可 デフォルトのJavaScript/TypeScript値に設定: analyze: 5000ms、flush: 5000ms、start: 2000ms、stop: 5000ms

JavaScriptとTypeScriptプロジェクトでは、適切なタイムアウトの設定により、環境を問わず信頼性の高いテストの実行が可能になります。Javaユーザーはテスト構造とネットワーク条件の最適化に注力するべきです。