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 Auto Scan aan het begin van je test
- Interageer met je app — elke schermwijziging wordt automatisch vastgelegd
- Stop auto scan — resultaten worden verwerkt en naar je lokale machine gehaald
Resultaten worden opgeslagen in build/AxeDevToolsMobileResults/ in je projectmap.
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 te testen applicatie. Merk op dat appPackage onderdeel is van de UiAutomator2-driver; je hebt het mogelijk al ingesteld. |
Automatisch Scannen Starten
Voordat je je testsuite start, start Auto Scan 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',
axeAccountURL: 'https://axe.deque.com',
axeHtmlReportPath: './reports/accessibility' // optional (local dir; default 'build/AxeDevToolsMobileResults')
...
}]);
})Automatisch Scannen Stoppen
Vlak voordat de testsuite eindigt, roep je de axeStopAutoScanSession-API aan om Auto Scan te stoppen en om de resultaten te aggregeren en te uploaden.
// 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 intoDe bovenstaande codefragmenten gebruiken JavaScript. Zie Codevoorbeelden van Automatisch Scannen met UIAutomator2 voor meer volledige 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 Auto Scan-sessie stopt, wordt een HTML-rapport gegenereerd op build/AxeDevToolsMobileResults/. Het rapport bevat toegankelijkheidsfouten, -successen en aanbevelingen voor elk scherm dat tijdens de sessie is vastgelegd.
Ondersteuning van Automatisch Scannen
Regels
Auto Scan 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 automatisch je resultaten naar Axe Developer Hub. Als je alleen lokaal resultaten wilt opslaan, stel axeUploadResults in op false.
Offline Modus
Als je geen cloud-referenties hebt, gebruik dan de offline-variant van de driver met een offline licentiesleutel. Installeer @axe-devtools/axe-appium3-uiautomator2-driver-offline en geef axeOfflineLicenseKey op 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 (Verouderd) |
string | Ja | Aangepaste backend-URL (bijv. axe.company.com), alleen voor on-prem/private cloud |
axeAccountURL |
string | Ja | Aangepaste backend-URL (bijv. axe.company.com), alleen voor on-prem/private cloud |
axeHtmlReportPath |
string | Nee | Door de gebruiker configureerbare uitvoermap voor HTML-rapport en samenvatting. Standaard ingesteld op build/AxeDevToolsMobileResults |
*Voorzie **ofwel** cloud-referenties (axeMobileApiKey + axeProjectId + axeAccountURL) **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?
Je kunt je resultaten bekijken in Axe Developer Hub. Leer hoe je integratie van Axe DevTools Mobile in uw CI/CD-pipeline. Gebruik je een cloud-gebaseerd testplatform? Je kunt nog steeds Axe DevTools Mobile gebruiken om te zoeken naar toegankelijkheidsproblemen. Zie Geautomatiseerd testen op cloudplatforms met Appium.
