XCUITestドライバーによる自動スキャン

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
Not for use with personal data

概要

自動スキャンは、iOSアプリを操作するときにアクセシビリティのスナップショットを自動的にキャプチャします。各画面で手動でスキャンをトリガーする代わりに、自動スキャンセッションを開始し、アプリを操作し、セッションを停止してレポートを作成します。

tip

テストでより詳細な制御が必要な場合は、 Appiumによるターゲットテストをご覧ください。

仕組み

  1. 開始 自動スキャンセッション(あなたの認証情報で)
  2. ナビゲート アプリを操作 — 画面は自動的にスキャンされます
  3. 停止 セッションを停止 — HTMLレポートが生成されます ~/AxeDevToolsMobileResults/

始めに

通常どおりAppiumサーバーを起動します:

appium

テストの設定

Appiumの自動化スクリプトから、Axe DevTools Mobileに必要な機能を追加します。

名前 タイプ 説明
automationName String アクセシビリティスキャンを実行するためにaxe DevTools Mobileを組み込んだドライバーを利用するには「AxeXCUITest」に設定してください。
bundleId String テスト対象のアプリのバンドル識別子。 bundleId はXCUITestドライバーの一部で、既に設定されている場合があります。

自動スキャンの開始

テストスイートを開始する前に、次の axeStartAutoScanSession APIを呼び出して自動スキャンを開始します:

beforeAll(async () => { // Start auto scan 
await driver.executeScript('mobile: axeStartAutoScanSession', 
    [{ axeMobileApiKey: 'your-api-key',
    axeProjectId: 'your-devhub-project-id' 
    ... 
    }]); 
})

自動スキャンの停止

テストスイートが終了する直前に、次の axeStopAutoScanSession APIを呼び出して自動スキャンを停止し、結果を集計してアップロードします。

await driver.executeScript('mobile: axeStopAutoScanSession', []);
note

上記のコードスニペットはJavaScriptを使用しています。 XCUITestによる自動スキャンのコード例 をご覧ください。複数のプログラミング言語でのより完全な例を参照できます。

結果の解釈

コンソール要約

テストスイートが終了するときに、次のようなコンソール要約が表示されます:

----  Axe DevTools Mobile Accessibility Summary ----
Scan 1:
  Screen: HomeScreen
  Issues: 3
  Issues by rule:
    - ColorContrast: 2
    - TouchTargetSize: 1

Scan 2:
  Screen: SettingsScreen
  Issues: 0

Total Scans: 2
❌ Total Issues: 3
----------------------------------------------------

クリーンランの場合、コンソールに Axe Clean - 0 Issues Found 🎉 が表示されます。

出力ファイル

自動スキャンセッションを停止すると、HTMLレポートが生成されます ~/AxeDevToolsMobileResults/。このレポートには、セッション中にキャプチャされた各画面のアクセシビリティ違反、合格、および推奨事項が含まれています。

自動スキャンサポート

ルール

自動スキャンは、 ScreenOrientationを除き、 SupportsDynamicTypeおよびすべての実験的ルールを含む完全なAxeルールセットを実行します。何をチェックするかの詳細は、 iOSのルール概要をご覧ください。

開発者ハブ

オートスキャンは結果を自動的にAxe Developer Hubにアップロードします。ローカルにのみ結果を保存したい場合は、 axeUploadResults を設定します。 false

オフラインモード

クラウド認証情報がない場合は、代わりにオフラインライセンスキーを使用してください:

// JavaScript example
await driver.execute('mobile: axeStartAutoScanSession', {
  axeOfflineLicenseKey: 'YOUR_OFFLINE_LICENSE_KEY'
});

// ... navigate through the app ...

await driver.execute('mobile: axeStopAutoScanSession', {});

設定リファレンス

プロパティ

パラメータ タイプ 必須 説明
axeUploadResults ブール値 オプション ダッシュボードへの結果のアップロード (デフォルト: true)
axeMobileApiKey 文字列 必須* クラウドベースのスキャン用APIキー
axeProjectId 文字列 オプション 結果を整理するためのプロジェクトID
axeOfflineLicenseKey 文字列 必須* オフラインモード用ライセンスキー (クラウド認証情報の代替)
axeServerUrl 文字列 オプション Axe DevTools MobileサーバーURL

提供する いずれか クラウド認証情報 (axeMobileApiKey + axeProjectId+ オプション axeServerUrl) または オフラインライセンスキー axeOfflineLicenseKey

ベストプラクティス

アニメーションを無効にする

アニメーションを無効にすることで、オートスキャンから最も正確で包括的な結果を得られます。これにより、キャプチャ時に画面が完全に表示されます。以下の項目を次に追加してください capabilities

  capabilities: {
    // ...existing capabilities
    'appium:reduceMotion': true, // enables iOS "Reduce Motion" accessibility setting
  }

トラブルシューティング

  • ローカルでは結果が見えるのに、Developer Hubでは見えないですか? 結果ファイルのいずれかのサイズが20MBを超える場合、Developer Hubへのアップロードに失敗しますが、すべての結果はローカルに保存され、ローカルHTMLレポートに表示されます。
  • ログを確認してください。 コンソールで AutoScan メッセージを探します。

次のステップは?

結果を Axe Developer Hubで見ることができます。次の操作の方法を学びます Axe DevTools MobileをCI/CDパイプラインに統合する。クラウドベースのテストプラットフォームを使用していますか?Axe DevTools Mobileを使用してアクセシビリティ問題を検出することができます: クラウドプラットフォームと統合する