Auto Scan mit dem XCUITest-Treiber
Übersicht
Auto Scan erfasst automatisch Barrierefreiheits-Snapshots, während Sie durch Ihre iOS-App navigieren. Anstatt manuell Scans auf jedem Bildschirm auszulösen, starten Sie eine Auto Scan-Sitzung, interagieren mit der App und beenden die Sitzung, um einen Bericht zu erstellen.
Wenn Sie eine detailliertere Kontrolle in Ihren Tests benötigen, siehe Gezieltes Testen mit Appium.
Wie es funktioniert
- Starten eine automatische Scan-Sitzung (mit Ihren Anmeldedaten)
- Navigieren durch Ihre App – Bildschirme werden automatisch gescannt
- Beenden der Sitzung – ein HTML-Bericht wird bei
~/AxeDevToolsMobileResults/generiert
Erste Schritte
Starten Sie den Appium-Server wie gewohnt:
appiumKonfigurieren Sie Ihre Tests
Fügen Sie aus Ihren Appium-Automatisierungsskripten die für Axe DevTools Mobile erforderlichen Fähigkeiten hinzu.
| Name | Typ | Beschreibung |
|---|---|---|
| automationName | String |
Auf 'AxeXCUITest' setzen, um den Treiber mit eingebettetem Axe DevTools Mobile zu nutzen, um Barrierefreiheits-Scans durchzuführen. |
| bundleId | String |
Die Bundle-ID der zu testenden App. Beachten Sie, dass bundleId Teil des XCUITest-Treibers ist; möglicherweise haben Sie es bereits eingerichtet. |
Auto Scan starten
Bevor Sie Ihr Testpaket starten, starten Sie Auto Scan, indem Sie die axeStartAutoScanSession API aufrufen:
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')
...
}]);
})Auto Scan beenden
Kurz bevor das Testpaket endet, rufen Sie die axeStopAutoScanSession API auf, um Auto Scan zu stoppen und die Ergebnisse zusammenzufassen und hochzuladen.
// 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 intoDie obigen Codeausschnitte verwenden JavaScript. Siehe Codebeispiele für Auto Scan mit XCUITest für vollständigere Beispiele in mehreren Programmiersprachen.
Ergebnisse interpretieren
Konsolenzusammenfassung
Eine Konsolenzusammenfassung ähnlich der folgenden wird gedruckt, wenn die Testreihe endet:
---- 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
----------------------------------------------------Ein sauberer Durchlauf zeigt Axe Clean - 0 Issues Found 🎉 in der Konsole.
Ausgabedateien
Wenn die Auto Scan-Sitzung stoppt, wird ein HTML-Bericht bei ~/AxeDevToolsMobileResults/ generiert. Der Bericht enthält Barrierefreiheitsschwachstellen, -bestehen und Empfehlungen für jeden während der Sitzung erfassten Bildschirm.
Auto Scan Unterstützung
Regeln
Auto Scan führt den vollständigen Regelkatalog von Axe aus, mit Ausnahme von ScreenOrientation, SupportsDynamicType und allen experimentellen Regeln. Finden Sie detaillierte Informationen darüber, was wir prüfen, unter Regelüberblick für iOS.
Entwickler-Hub
Auto Scan lädt Ihre Ergebnisse automatisch in das Axe Developer Hub hoch. Wenn Sie die Ergebnisse nur lokal speichern möchten, setzen Sie axeUploadResults auf false.
Offline-Modus
Wenn Sie keine Cloud-Anmeldedaten haben, verwenden Sie stattdessen einen Offline-Lizenzschlüssel:
// JavaScript example
await driver.execute('mobile: axeStartAutoScanSession', {
axeOfflineLicenseKey: 'YOUR_OFFLINE_LICENSE_KEY'
});
// ... navigate through the app ...
await driver.execute('mobile: axeStopAutoScanSession', {});Konfigurationsreferenz
Eigenschaften
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
axeUploadResults |
Boolesch | Optional | Ergebnisse auf Dashboard hochladen (Standard: true) |
axeMobileApiKey |
Zeichenfolge | Erforderlich* | API-Schlüssel für cloudbasiertes Scannen |
axeProjectId |
Zeichenfolge | Optional | Projekt-ID zur Organisation von Ergebnissen |
axeOfflineLicenseKey |
Zeichenfolge | Erforderlich* | Lizenzschlüssel für Offline-Modus (Alternative zu Cloud-Anmeldedaten) |
axeServerUrl (Veraltet) |
Zeichenfolge | Ja | Benutzerdefinierte Backend-URL (z. B. axe.company.com), nur für On-Prem/Private Cloud |
axeAccountURL |
Zeichenfolge | Ja | Benutzerdefinierte Backend-URL (z. B. axe.company.com), nur für On-Prem/Private Cloud |
axeHtmlReportPath |
Zeichenfolge | Nein | Benutzerdefinierbares Ausgabeverzeichnis für HTML-Bericht und Zusammenfassung. Standard ist ??? |
Geben Sie entweder Cloud-Zugangsdaten an (axeMobileApiKey + axeProjectId + axeAccountURL) oder ein axeOfflineLicenseKey.
Best Practices
Animationen deaktivieren
Erhalten Sie die genauesten und umfassendsten Ergebnisse von Auto Scan, indem Sie Animationen deaktivieren. Dies stellt sicher, dass Bildschirme vollständig gerendert werden, wenn sie erfasst werden. Fügen Sie das Folgende unter capabilities hinzu:
capabilities: {
// ...existing capabilities
'appium:reduceMotion': true, // enables iOS "Reduce Motion" accessibility setting
}Fehlerbehebung
- Sehen Sie Ergebnisse lokal, aber nicht im Developer Hub? Der Upload zum Developer Hub schlägt fehl, wenn die Größe einer Ergebnisdatei größer als 20 MB ist, obwohl alle Ergebnisse dennoch lokal gespeichert und im lokalen HTML-Bericht angezeigt werden.
- Protokolle prüfen. Suchen Sie in der Konsole nach
AutoScanMeldungen.
Was kommt als Nächstes?
Sie können Ihre Ergebnisse in Axe Developer Hub ansehen. Erfahren Sie, wie Sie Axe DevTools Mobile in Ihre CI/CD-Pipeline integrieren. Nutzen Sie eine cloudbasierte Testplattform? Sie können weiterhin Axe DevTools Mobile verwenden, um nach Barrierefreiheitsthemen zu suchen: Integration mit Cloud-Plattformen.
