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',
  axeAccountURL: 'https://axe.deque.com',
  axeHtmlReportPath: './reports/accessibility' // optional (local dir; default 'build/AxeDevToolsMobileResults')
  ... 
  }]); 
})

自動スキャンの停止

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

// Stop - the report is pulled to axeHtmlReportPath on the local machine
const result = await driver.executeScript('mobile: axeStopAutoScanSession');

// result.localDirectory -> local directory the report was saved into
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 🎉がコンソールに表示されます。

出力ファイル

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

自動スキャンサポート

ルール

オートスキャンはScreenOrientationSupportsDynamicType、およびすべての実験的ルールを除く完全なAxeルールセットを実行します。我々が何をチェックしているかの詳細情報はiOSのルール概要で確認してください。

開発者ハブ

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

オフラインモード

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

// 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(廃止予定) 文字列 はい カスタムバックエンドURL(例: axe.company.com)、オンプレミス/プライベートクラウド専用
axeAccountURL 文字列 はい カスタムバックエンドURL(例: axe.company.com)、オンプレミス/プライベートクラウド専用
axeHtmlReportPath 文字列 いいえ HTMLレポートとサマリーのユーザー設定可能な出力ディレクトリ。デフォルトは???

いずれか クラウド資格情報(axeMobileApiKey + axeProjectId + axeAccountURLまたは axeOfflineLicenseKey

ベストプラクティス

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

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

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

トラブルシューティング

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

次のステップは?

結果をAxe Developer Hubで確認できます。Axe DevTools MobileをCI/CDパイプラインに統合するの方法を学びましょう。クラウドベースのテストプラットフォームを使用していますか? アクセシビリティ問題を見つけるために、Axe DevTools Mobileはクラウドプラットフォームと統合するで依然として使用できます。