Automatisch Scannen met de UIAutomator2 Driver
Overzicht
Automatisch scannen controleert continu je Android-app op toegankelijkheidsproblemen terwijl je tests worden uitgevoerd. In plaats van één scherm per keer te scannen, worden toegankelijkheidssnapshots vastgelegd bij elke UI-wijziging en allemaal aan het einde verwerkt.
Als je meer gedetailleerde controle in je tests nodig hebt, zie Gericht Testen met Appium.
Hoe het werkt
- Start Automatisch Scannen aan het begin van je test
- Interageer met je app — elke schermwijziging wordt automatisch vastgelegd
- Stop automatisch scannen — resultaten worden verwerkt en naar je lokale machine gehaald
Resultaten worden opgeslagen in build/AxeDevToolsMobileResults/ in je projectdirectory.
Aan de slag
Start de Appium-server zoals gebruikelijk:
appiumConfigureer Je Tests
Voeg vanuit je Appium-automatiseringsscripts de vereiste mogelijkheden toe voor Axe DevTools Mobile.
| Naam | Type | Beschrijving |
|---|---|---|
| automationName | String |
Stel in op 'AxeUiAutomator2' om de driver met ingebedde Axe DevTools Mobile te gebruiken voor toegankelijkheidsscans. |
| appPackage | String |
De pakketnaam van de applicatie die wordt getest. Houd er rekening mee dat appPackage een onderdeel is van de UiAutomator2-driver; het kan al ingesteld zijn. |
Automatisch Scannen Starten
Voordat je de testsuite start, start je Automatisch Scannen door de axeStartAutoScanSession API aan te roepen:
beforeAll(async () => { // Start auto scan
await driver.executeScript('mobile: axeStartAutoScanSession',
[{ axeMobileApiKey: 'your-api-key',
axeProjectId: 'your-devhub-project-id'
...
}]);
})Automatisch Scannen Stoppen
Net voordat de testsuite eindigt, roep je de axeStopAutoScanSession API aan om Automatisch Scannen te stoppen en de resultaten te aggregeren en te uploaden.
await driver.executeScript('mobile: axeStopAutoScanSession', []);De bovenstaande codefragmenten gebruiken JavaScript. Zie Codevoorbeelden van Automatisch Scannen met UIAutomator2 voor meer complete voorbeelden in meerdere programmeertalen.
Resultaten Interpreteren
Console Samenvatting
Zodra de testsuite is voltooid, vind je een samenvatting in het consolevenster waar de Appium-server draait.
---- 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
---------------------------------------------------Uitvoerbestanden
Wanneer de Automatisch Scannen-sessie stopt, wordt een HTML-rapport gegenereerd op build/AxeDevToolsMobileResults/. Het rapport bevat toegankelijkheidsschendingen, -goedkeuringen en aanbevelingen voor elk scherm dat tijdens de sessie is vastgelegd.
Ondersteuning van Automatisch Scannen
Regels
Automatisch Scannen voert de volledige Axe-regelset uit met uitzondering van ScreenOrientation en alle experimentele regels (bijv. NestedActiveControl, NestedElementName, InaccessibleAction). Vind gedetailleerde informatie over wat we controleren in de Regeloverzicht voor Android.
Ontwikkelaarsportaal
Auto Scan uploadt je resultaten automatisch naar Axe Ontwikkelaarsportaal. Als je de resultaten alleen lokaal wilt opslaan, stel dan axeUploadResults in op false.
Offline Modus
Als je geen cloud-credentials hebt, gebruik dan de offline-variant van de driver met een offline licentiesleutel. Installeer @axe-devtools/axe-appium3-uiautomator2-driver-offline en geef door axeOfflineLicenseKey bij het starten van de sessie.
Configuratiereferentie
Eigenschappen
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
axeUploadResults |
boolean | Nee | Upload resultaten naar Ontwikkelaarsportaal |
axeMobileApiKey |
string | Ja* | Je Axe DevTools Mobile API-sleutel |
axeProjectId |
string | Nee | Project-ID voor het organiseren van resultaten |
axeOfflineLicenseKey |
string | Ja* | Licentiesleutel voor offline modus (alternatief voor cloud-credentials) |
axeServerUrl |
string | Nee | Aangepaste Axe-server-URL (voor on-prem of private cloud) |
*Geef **ofwel** cloud-credentials (axeMobileApiKey + axeProjectId + optioneel axeServerUrl) **of** een axeOfflineLicenseKey.
Animaties Uitschakelen
Krijg de meest nauwkeurige en uitgebreide resultaten van Auto Scan door animatie uit te schakelen. Dit zorgt ervoor dat schermen volledig zijn gerenderd wanneer ze worden vastgelegd. Als animaties niet zijn uitgeschakeld, merk je mogelijk:
- Dubbele scans die je denkt te moeten zijn verwijderd
- Scans met schermafbeeldingen die een overgangstoestand tonen
- Een aanzienlijk lagere schermopnamesnelheid dan je zou verwachten
Voeg het volgende toe onder capabilities:
capabilities: {
// ...existing capabilities
'appium:disableWindowAnimation': true, // disables window animations
}Probleemoplossing
Als je geen scans ziet verschijnen in Ontwikkelaarsportaal, controleer dan je logboeken voor aanwijzingen over wat er mis kan zijn of doorloop deze checklist.
- Zorg ervoor dat je de juiste variabele gebruikt voor je API/Licentiesleutel en Project-ID
- Controleer de grootte van je uitvoerbestanden. De upload naar Ontwikkelaarsportaal mislukt als de grootte van een resultaatbestand groter is dan 20MB, hoewel alle resultaten nog steeds lokaal worden opgeslagen en getoond in het lokale HTML-rapport.
Wat is de volgende stap?
U kunt uw resultaten bekijken in de Axe Developer Hub. Leer hoe u de integratie van Axe DevTools Mobile in uw CI/CD-pipeline. Gebruikt u een cloudgebaseerd testplatform? U kunt Axe DevTools Mobile nog steeds gebruiken om toegankelijkheidsproblemen op te sporen. Zie Geautomatiseerd testen op cloudplatforms met Appium.
