Auto Scan mit dem UIAutomator2-Treiber
Überblick
Auto Scan überwacht kontinuierlich Ihre Android-App auf Barrierefreiheitsprobleme, während Ihre Tests laufen. Anstatt einen Bildschirm nach dem anderen zu scannen, erfasst es Barrierefreiheits-Snapshots bei jedem UI-Wechsel und verarbeitet sie alle am Ende.
Wenn Sie eine detailliertere Steuerung Ihrer Tests benötigen, sehen Sie Gezieltes Testen mit Appium.
Wie es funktioniert
- Starten Auto Scan zu Beginn Ihres Tests
- Interagieren mit Ihrer App — jeder Bildschirmwechsel wird automatisch erfasst
- Stoppen Auto Scan — die Ergebnisse werden verarbeitet und auf Ihren lokalen Rechner übertragen
Die Ergebnisse werden in build/AxeDevToolsMobileResults/ in Ihrem Projektverzeichnis gespeichert.
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 'AxeUiAutomator2' setzen, um den Treiber mit eingebettetem Axe DevTools Mobile für Barrierefreiheits-Scans zu nutzen. |
| appPackage | String |
Der Paketname der zu testenden Anwendung. Beachten Sie, dass appPackage Teil des UiAutomator2-Treibers ist; möglicherweise haben Sie diesen bereits eingestellt. |
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 die Testreihe endet, rufen Sie die axeStopAutoScanSession API auf, um Auto Scan zu stoppen und die Ergebnisse zu aggregieren 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. Sehen Sie Auto Scan Code-Beispiele mit UIAutomator2 für vollständigere Beispiele in mehreren Programmiersprachen.
Ergebnisse interpretieren
Konsole-Zusammenfassung
Nachdem die Test-Suite beendet ist, können Sie eine Zusammenfassung im Konsolenfenster finden, in dem der Appium-Server läuft.
---- Axe DevTools Mobile Accessibility Summary ----
Scan 1:
Screen: Home Page
Issues: 6
Issues by rule:
- TouchSizeWcag: 3
- LabelAtFront: 1
- LabelInName: 1
- FocusableText: 1
Scan 35:
Screen: Wikipedia Alpha
Issues: 5
Issues by rule:
- LabelAtFront: 1
- LabelInName: 1
- TouchTargetSpacing: 1
- TouchSizeWcag: 1
- ColorContrast: 1
Total Scans: 35
❌ Total Issues: 123
---------------------------------------------------Ausgabedateien
Wenn die Auto Scan-Sitzung endet, wird ein HTML-Bericht unter build/AxeDevToolsMobileResults/ generiert. Der Bericht enthält Zugänglichkeitsverletzungen, erfolgreiche Prüfungen und Empfehlungen für jeden während der Sitzung erfassten Bildschirm.
Unterstützung von Auto Scan
Regeln
Auto Scan führt den vollständigen Satz von Axe-Regeln aus, mit Ausnahme von ScreenOrientation und allen experimentellen Regeln (z. B. NestedActiveControl, NestedElementName, InaccessibleAction). Finden Sie detaillierte Informationen darüber, was wir prüfen, im Regelübersicht für Android.
Entwicklerzentrum
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-Zugangsdaten haben, verwenden Sie stattdessen die Offline-Variante des Treibers mit einem Offline-Lizenzschlüssel. Installieren Sie @axe-devtools/axe-appium3-uiautomator2-driver-offline und übergeben Sie axeOfflineLicenseKey beim Start der Sitzung.
Konfigurationsreferenz
Eigenschaften
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
axeUploadResults |
boolean | Nein | Ergebnisse in das Entwicklerzentrum hochladen |
axeMobileApiKey |
string | Ja* | Ihr Axe DevTools Mobile API-Schlüssel |
axeProjectId |
string | Nein | Projekt-ID zur Organisation der Ergebnisse |
axeOfflineLicenseKey |
string | Ja* | Lizenzschlüssel für den Offline-Modus (Alternative zu Cloud-Anmeldedaten) |
axeServerUrl (Veraltet) |
string | Ja | Benutzerdefinierte Backend-URL (z. B. axe.company.com), nur für On-Prem/Private Cloud |
axeAccountURL |
string | Ja | Benutzerdefinierte Backend-URL (z. B. axe.company.com), nur für On-Prem/Private Cloud |
axeHtmlReportPath |
string | Nein | Benutzerkonfigurierbares Ausgabeverzeichnis für den HTML-Bericht und die Zusammenfassung. Standardmäßig build/AxeDevToolsMobileResults |
*Geben Sie entweder Cloud-Zugangsdaten an (axeMobileApiKey + axeProjectId + axeAccountURL) oder ein axeOfflineLicenseKey.
Animationen deaktivieren
Erhalten Sie die genauesten und umfassendsten Ergebnisse vom Auto-Scan, indem Sie Animationen deaktivieren. Dadurch wird sichergestellt, dass Bildschirme beim Erfassen vollständig gerendert werden. Wenn Animationen nicht deaktiviert sind, können folgende Probleme auftreten:
- Doppelte Scans, die Ihrer Meinung nach hätten gelöscht werden sollen
- Scans mit Screenshots, die einen Übergangszustand zeigen
- Eine deutlich niedrigere Bildschirmaufnahmegeschwindigkeit, als Sie erwarten könnten
Fügen Sie Folgendes unter capabilities hinzu:
capabilities: {
// ...existing capabilities
'appium:disableWindowAnimation': true, // disables window animations
}Fehlerbehebung
Wenn Sie keine Scans im Developer Hub sehen, sollten Sie Ihre Protokolle nach Hinweisen durchsuchen, was möglicherweise schiefgelaufen ist, oder diese Checkliste durchgehen.
- Stellen Sie sicher, dass Sie die korrekte Variable für Ihren API-/Lizenzschlüssel und die Projekt-ID verwenden
- Überprüfen Sie die Größe Ihrer Ausgabedateien. Der Upload zum Developer Hub schlägt fehl, wenn die Größe einer Ergebnissdatei größer als 20 MB ist, obwohl alle Ergebnisse lokal gespeichert und im lokalen HTML-Bericht angezeigt werden.
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. Verwenden Sie eine cloudbasierte Testplattform? Sie können Axe DevTools Mobile weiterhin nutzen, um nach Zugänglichkeitsproblemen zu suchen. Sehen Sie Automatisiertes Testen auf Cloud-Plattformen mit Appium.
