Scanresultaten Lokaal Opslaan
Wanneer u scanresultaten lokaal opslaat, kunt u het JSON-resultaat gebruiken om toegankelijkheidsstatistieken te integreren in verschillende rapportagetools. U kunt ook een HTML-rapport maken om via e-mail of chat te delen, om uw team op de hoogte te stellen van de toegankelijkheidsstatus van uw testrun.
Resultaten lokaal opslaan wordt alleen ondersteund binnen geautomatiseerd testen.
Resultaten Opslaan en Delen
Gebruik de volgende code om testresultaten op te slaan op het daadwerkelijke fysieke apparaat of emulatie als een .json bestand. De "prefix" parameter zal het begin zijn van de bestandsnaam waaronder je het resultaat wilt opslaan.
axe.scan()?.saveResultToLocalStorage("prefix")Opmerking: Je kunt de naam van de scan aanpassen voordat je het resultaat opslaat.
Genereer een HTML-rapport en samenvatting
Bij gebruik van de Axe DevTools Gradle plugin genereert een oproep naar generateHtmlReportAndSummary één keer per testklasse een rapport lokaal op je apparaat. Deze API-oproep spoelt alle opgeslagen resultatend bestanden en bekijkt alle scans die sinds het begin van de testsessie zijn verzameld (of sinds de laatste oproep van de methode) om een rapport te genereren. Wanneer je testreeks beëindigt, stuurt de Gradle-plugin automatisch rapporten naar de build/reports directory van je project.
Als je de resultaten liever in een andere directory wilt opslaan, kun je dit aangeven in het configuratieblok van de plugin in je build.gradle bestand.
axeDevTools {
axeMobileApiKey = "AXE_API_KEY"
axeProjectId = "DEVHUB_PROJECT_ID"
axeAutoScanMode = false
axeHtmlReportPath =
"User/Desktop/reports/AxeDevToolsMobileResults"
axeAccountUrl = "https://axe.deque.com"
class SampleTest {
@Before
fun before() {
axe.startScanSession(API_KEY, PROJECT_ID, OPTIONAL_CUSTOM_URL)
}
@Test
fun test_desired_screen() {
// navigateToScreen(DESIRED_SCREEN.title)
val results = axe.scan()?.serializedResult?.axeRuleResults
// assertForRule(results, "FocusableText", 12, 8, 1)
}
companion object {
val axe: AxeDevTools = AxeDevTools()
@JvmStatic
@AfterClass
fun afterClass() {
axe.generateHtmlReportAndSummary("optional_name")
}
}
}Deze rapporten zullen alleen screenshots en regelbreuken bevatten. Voor meer gedetailleerde rapportages die de weergavehiërarchie, regels die als geslaagd of onvolledig zijn gemarkeerd, en details over regelbreuken bevatten, zie de onderstaande sectie om te leren hoe je de Axe DevTools Reporter CLI kunt gebruiken.
Gebruik resultaten voor gedetailleerde rapportage
Maak gebruik van scanresultaten voor rapportage door de JSON-bestanden naar de build-map van je project te verplaatsen. Vervolgens kun je de Axe DevTools Reporter CLI gebruiken om een HTML-rapport te maken van een reeks scans. Als alternatief kun je de resultaatbestanden programmaticamente toegankelijk maken om toegankelijkheidsstatistieken te integreren met interne rapportagetools.
Voeg het volgende script toe aan het build.gradle bestand van je app, onder het android{...} blok, en zorg ervoor dat het niet binnen een andere Gradle-taak staat. Voeg de naam van je app-pakket in de packageName variabele.
Het onderstaande script kopieert de rapporten gegenereerd door resultaten lokaal op te slaan op uw emulator of apparaat en verplaatst deze naar de rapportmap in uw buildmap.
def reportsDirectory = "$buildDir/reports/androidTests/connected/axe"
def packageName = "your.app.package.name.here"
def createAndroidFolderDirectoryTask = task('createAndroidFolderDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'mkdir', '-p', '/storage/emulated/0/Android/data/' + packageName + '/files/AxeTestCases'
}
def clearAndroidDirectoryTask = task('clearAndroidDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'rm', '-r', '/storage/emulated/0/Android/data/' + packageName + '/files/AxeTestCases'
}
def fetchAndroidFolderAxeReportsTask = task('fetchAndroidFolderAxeReportsTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'pull', '/storage/emulated/0/Android/data/' + packageName + '/files/AxeTestCases', reportsDirectory
dependsOn {
createAndroidFolderDirectoryTask
}
finalizedBy {
clearAndroidDirectoryTask
}
doFirst {
new File(reportsDirectory).mkdirs()
}
}
def createDirectoryTask = task('createDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'mkdir', '-p', '/storage/emulated/0/Documents/AxeTestCases'
}
def clearDirectoryTask = task('clearDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'rm', '-r', '/storage/emulated/0/Documents/AxeTestCases'
finalizedBy {
fetchAndroidFolderAxeReportsTask
}
}
def fetchAxeReportsTask = task('fetchAxeReportsTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'pull', '/storage/emulated/0/Documents/AxeTestCases', reportsDirectory
dependsOn {
createDirectoryTask
}
finalizedBy {
clearDirectoryTask
}
doFirst {
new File(reportsDirectory).mkdirs()
}
}
tasks.configureEach { task ->
if (task.name == 'connectedDebugAndroidTest') {
task.finalizedBy {
fetchAxeReportsTask
}
}
}Ondersteuning op Cloud Testplatformen
Een resultaat lokaal opslaan werkt niet zoals verwacht op Cloud Testing Platforms. Als je ondersteuning nodig hebt voor Cloud Testing Platforms, stuur dan een verzoek naar helpdesk@deque.com of naar support.deque.com.
