XCUITestドライバーによる自動スキャン
概要
自動スキャンは、iOSアプリを操作するときにアクセシビリティのスナップショットを自動的にキャプチャします。各画面で手動でスキャンをトリガーする代わりに、自動スキャンセッションを開始し、アプリを操作し、セッションを停止してレポートを作成します。
テストでより詳細なコントロールが必要な場合は、Appiumによるターゲットテストを参照してください。
仕組み
- 開始 自動スキャンセッション(あなたの資格情報付き)
- ナビゲート アプリを通じて — 画面が自動的にスキャンされます
- 停止 セッション — 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上記のコードスニペットは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レポートが生成されます。このレポートには、セッション中にキャプチャされた各画面のアクセシビリティ違反、合格、および推奨事項が含まれています。
自動スキャンサポート
ルール
オートスキャンは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(廃止予定) |
文字列 | はい | カスタムバックエンド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はクラウドプラットフォームと統合するで依然として使用できます。
