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 mehr granulare Kontrolle in Ihren Tests benötigen, sehen Sie Gezieltes Testen mit Appium.
Wie es funktioniert
- Starten Sie eine Auto Scan-Sitzung (mit Ihren Anmeldeinformationen)
- Navigieren Sie durch Ihre App — Bildschirme werden automatisch gescannt
- Beenden Sie die Sitzung — ein HTML-Bericht wird bei
~/AxeDevToolsMobileResults/
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 |
Setzen Sie auf „AxeXCUITest“, um den Treiber mit integriertem Axe DevTools Mobile zu nutzen, um Barrierefreiheits-Scans durchzuführen. |
| bundleId | String |
Die Bundle-ID der getesteten App. Beachten Sie, dass bundleId ein Teil des XCUITest-Treibers ist; möglicherweise haben Sie es bereits festgelegt. |
Auto Scan starten
Bevor Sie Ihre Testreihe 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 die Testreihe endet, rufen Sie die axeStopAutoScanSession API auf, um Auto Scan zu stoppen und die Ergebnisse zu sammeln 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 Codebeispiele verwenden JavaScript. Sehen Sie 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 Lauf zeigt an, dass Axe Clean - 0 Issues Found 🎉 in der Konsole.
Ausgabedateien
Wenn die Auto Scan-Sitzung endet, wird ein HTML-Bericht bei ~/AxeDevToolsMobileResults/. Der Bericht enthält Barrierefreiheitsverletzungen, Erfolge und Empfehlungen für jeden während der Sitzung erfassten Bildschirm.
Auto Scan Unterstützung
Regeln
Auto Scan führt das vollständige Axe Regelset aus, mit Ausnahme von ScreenOrientation, SupportsDynamicType, und alle experimentellen Regeln. Finden Sie detaillierte Informationen darüber, was wir im Regelüberblick für iOSüberprüfen.
Entwickler-Hub
Auto Scan lädt Ihre Ergebnisse automatisch zum 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 zum 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), für On-Prem/Private Cloud nur |
axeAccountURL |
Zeichenfolge | Ja | Benutzerdefinierte Backend-URL (z. B. axe.company.com), für On-Prem/Private Cloud nur |
axeHtmlReportPath |
Zeichenfolge | Nein | Vom Benutzer konfigurierbares Ausgabeverzeichnis für HTML-Bericht und Zusammenfassung. Standardmäßig ??? |
Geben Sie entweder Cloud-Anmeldedaten (axeMobileApiKey + axeProjectId+ axeAccountURL) oder eine axeOfflineLicenseKey.
Best Practices
Animationen deaktivieren
Erhalten Sie die genauesten und umfassendsten Ergebnisse von Auto Scan, indem Sie Animationen deaktivieren. Dadurch wird sichergestellt, dass die Bildschirme beim Erfassen vollständig gerendert werden. Fügen Sie Folgendes unter capabilities:
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 20 MB überschreitet, obwohl alle Ergebnisse weiterhin lokal gespeichert und im lokalen HTML-Bericht angezeigt werden.
- Protokolle prüfen. Suchen Sie nach
AutoScanMeldungen in der Konsole.
Was kommt als Nächstes?
Sie können Ihre Ergebnisse im Axe Developer Hubansehen. Erfahren Sie, wie Sie Axe DevTools Mobile in Ihre CI/CD-Pipeline integrieren. Verwenden Sie eine cloudbasierte Testplattform? Sie können Axe DevTools Mobile dennoch verwenden, um nach Barrierefreiheitsproblemen zu suchen: Integration mit Cloud-Plattformen.
