Automatisch scannen met de XCUITest-driver
Overzicht
Auto Scan legt automatisch toegankelijkheidssnapshots vast terwijl je door je iOS-app navigeert. In plaats van handmatig scans op elk scherm te starten, begin je een auto scan sessie, interacteer je met de app en stop je de sessie om een rapport te genereren.
Als u meer gedetailleerde controle in uw tests nodig hebt, zie Gericht testen met Appium.
Hoe het werkt
- **Start** een automatische scansessie (met uw inloggegevens)
- **Navigeer** door uw app — schermen worden automatisch gescand
- **Stop** de sessie — er wordt een HTML-rapport gegenereerd op
~/AxeDevToolsMobileResults/
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 'AxeXCUITest' om de driver met Axe DevTools Mobile te gebruiken om toegankelijkheidsscans uit te voeren. |
| bundleId | String |
De bundle-ID van de app die wordt getest. Let op dat bundleId onderdeel is van de XCUITest-driver; u heeft deze wellicht al ingesteld. |
Start Auto Scan
Start Auto Scan door de axeStartAutoScanSession API aan te roepen voordat u uw testsuite start:
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')
...
}]);
})Stop Auto Scan
Roep vlak voordat de testsuite eindigt 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 codevoorbeelden gebruiken JavaScript. Zie Auto Scan codevoorbeelden met XCUITest voor meer volledige voorbeelden in meerdere programmeertalen.
Resultaten interpreteren
Consolesamenvatting
Een consolesamenvatting vergelijkbaar met het volgende wordt afgedrukt wanneer de test suite eindigt:
---- 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
----------------------------------------------------Een schone uitvoering toont Axe Clean - 0 Issues Found 🎉 in de console.
Uitvoerbestanden
Wanneer de Auto Scan-sessie stopt, wordt er een HTML-rapport gegenereerd op ~/AxeDevToolsMobileResults/. Het rapport bevat toegankelijkheidsproblemen, successen en aanbevelingen voor elk scherm dat tijdens de sessie is vastgelegd.
Ondersteuning voor Auto Scan
Regels
Auto Scan voert de volledige Axe-regelset uit met uitzondering van ScreenOrientation, SupportsDynamicType en alle experimentele regels. Vind gedetailleerde informatie over wat we controleren in de Regeloverzicht voor iOS.
Developer Hub
Auto Scan uploadt uw resultaten automatisch naar Axe Developer Hub. Als u alleen resultaten lokaal wilt opslaan, stel axeUploadResults in op false.
Offline-modus
Als u geen cloud-gegevens hebt, gebruik dan in plaats daarvan een offline licentiesleutel:
// JavaScript example
await driver.execute('mobile: axeStartAutoScanSession', {
axeOfflineLicenseKey: 'YOUR_OFFLINE_LICENSE_KEY'
});
// ... navigate through the app ...
await driver.execute('mobile: axeStopAutoScanSession', {});Configuratiereferentie
Eigenschappen
| Parameter | Type | Vereist | Beschrijving |
|---|---|---|---|
axeUploadResults |
Booleaans | Optioneel | Upload resultaten naar dashboard (standaard: true) |
axeMobileApiKey |
String | Vereist* | API-sleutel voor cloudgebaseerde scanning |
axeProjectId |
String | Optioneel | Project-ID voor het organiseren van resultaten |
axeOfflineLicenseKey |
String | Vereist* | Licentiesleutel voor offline-modus (alternatief voor cloud-gegevens) |
axeServerUrl (Afgekeurd) |
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 op ??? |
Verstrek **of** cloud-credentials (axeMobileApiKey + axeProjectId+ axeAccountURL) **of** een axeOfflineLicenseKey.
Best Practices
Animaties Uitschakelen
Krijg de meest nauwkeurige en uitgebreide resultaten van Auto Scan door animaties uit te schakelen. Dit zorgt ervoor dat schermen volledig zijn gerenderd wanneer ze worden vastgelegd. Voeg het volgende toe onder capabilities:
capabilities: {
// ...existing capabilities
'appium:reduceMotion': true, // enables iOS "Reduce Motion" accessibility setting
}Probleemoplossing
- Resultaten lokaal zien, maar niet in Developer Hub? De upload naar Developer Hub mislukt als de grootte van een enkel resultbestand groter is dan 20MB, hoewel alle resultaten nog steeds lokaal worden opgeslagen en getoond in het lokale HTML-rapport.
- Controleer logs. Zoek naar
AutoScanberichten in de console.
Wat Nu?
U kunt uw resultaten bekijken in Axe Developer Hub. Leer hoe u Axe DevTools Mobile integreren in je CI/CD-pijplijn. Gebruikt u een cloudgebaseerd testplatform? U kunt nog steeds Axe DevTools Mobile gebruiken om toegankelijkheidsproblemen te zoeken: Integreren met cloudplatforms.
