Veelgestelde Vragen

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

Android

Mobiele Analyzer

Waarom heeft de app extra toestemmingen nodig?

Wanneer je de applicatie voor de eerste keer instelt, wordt je gevraagd om de axe DevTools Mobiele Analyzer toestemming te geven voor overlagen en toegankelijkheidsinstellingen. Overlagen toestaan betekent dat de zwevende actieknop je kan volgen ongeacht de app die je op je apparaat open hebt staan. Toegankelijkheidsinstellingen stellen de analyseringsapp in staat om informatie over weergaven binnen de applicatie te benaderen die je probeert te scannen.

Geautomatiseerd Testen

Kan ik geautomatiseerd testen instellen zonder authenticatie?

We bieden offline builds van onze SDK's en Appium-drivers voor je automatiseringspijplijn die geen netwerkverzoeken naar de axe DevTools Mobile-dienst vereisen. Deze buildconfiguraties zijn daarom alleen beschikbaar via Deque's Artifactory.

Houd er rekening mee dat deze build een subset van de mogelijkheden binnen axeDevTools Mobile voor Android is. Om de volledige reeks mogelijkheden te gebruiken, inclusief het doorsturen van resultaten naar het dashboard, gebruik dan onze standaard SDK's of Appium-drivers. Raadpleeg de handleiding voor de eerste stappen.

Installatie

Bij het navigeren door de documentatie, houd er rekening mee dat niet alle functies die serverinteractie vereisen beschikbaar zijn in de offline build.

important

Checklist voor de Start:

  • Vereist: Android API 26 of hoger
  • Verbind met Artifactory om het framework binnen te halen.
Setup voor Testen

In het applicatie's build.gradle bestand, voeg toe:

android {
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/AL2.0' 
        exclude 'META-INF/LGPL2.1'
    }
}

Zorg ervoor dat er internettoestemming is in het AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />
Espresso Test Voorbeeld

Let op dat de axe.loginWithUsername(...) en axe.loginWithApiKey(...) niet beschikbaar zijn in deze versie van de bibliotheek en verwijderd moeten worden uit de installatiecode als je overstapt van het gebruik van de geauthenticeerde versie.

Layout-onafhankelijk
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
    @Rule    
    @JvmField    
    var rule: ActivityScenarioRule<MainActivity> = ActivityScenarioRule(MainActivity::class.java)

    companion object {
        private val axe = AxeDevTools()
        init {
            axe.setOfflineLicenseKey("deque_provided_license_key_here")
        }
        axe.setInstrumenation(InstrumentationRegistry.getInstrumentation())
    }

    @Test    
    fun exampleTest() {
        onView(withText("Example Button Name")).perform(click())
    }

    @After    
    fun runAccessibilityScan() {
        val scan = axe.scan()
        val result = scan?.getSerializedResult()

        axe.tearDown()   
    }
}

Resultaten

Waarom verschijnen mijn resultaten niet in Developer Hub?

Als je je resultaten niet ziet in Developer Hub, controleer dan of je het volgende hebt gedaan:

  • Voorzie een geldige Axe DevTools Mobile API-sleutel bij het initialiseren van de Axe-bibliotheek in je tests. Bezoek Axe Accountinstellingen om je API-sleutels te vinden of Genereer een nieuwe Axe DevTools Mobile API-sleutel.
  • Voorzie een geldige Project-ID samen met de API-sleutel wanneer je een testsessie start. Een Project-ID is niet vereist om een testsessie te starten, maar het *is* vereist om resultaten naar Developer Hub te sturen. Wanneer je Maak een Project voor Je Resultaten, wordt er automatisch een Project-ID gegenereerd.
  • Roep de uploadToDashboard functie na elke scan in uw test om resultaten naar Developer Hub te sturen.
  • Zie een volledig voorbeeld. Raadpleeg de Android Sample Test Class en vergelijk het met uw implementatie.
tip

Looking for your Project ID? You can access this from the main Projects page in Axe Developer Hub.

  • Go to 'Settings' for your project and select 'Configure Project'.
  • In the 'Project Details' you can find and copy the Project ID.
  • Make sure you have provided this Project ID to the startSession method.

iOS

Mobiele Analyzer

Wat moet ik doen als mijn Apple Development Certificaat is verlopen?

Als u een foutmelding krijgt bij het gebruik van de Mobile Analyzer Desktop App waarin staat dat uw Apple Development Certificaat is verlopen, volg dan de onderstaande stappen.

Snelle oplossing
  1. Open Xcode → Ga naar Xcode > Instellingen (of Voorkeuren op oudere versies)
  2. Selecteer het tabblad Accounts .
  3. Selecteer uw Apple ID
  4. Klik op Certificaten beheren
  5. Zoek het verlopen certificaat (het zal een waarschuwingspictogram hebben)
  6. Selecteer het verlopen certificaat en klik op de minknop () om het te verwijderen
  7. Klik op de plusknop (+) en selecteer Apple Development om een nieuw certificaat te maken
  8. Sluit de Mobile Analyzer-app
  9. Start de app opnieuw. Raadpleeg iOS-apps testen op toegankelijkheid indien nodig.
Nog steeds een foutmelding?

Soms cachet Xcode het oude certificaat. Probeer het volgende:

  1. Herroep het certificaat in uw Apple Developer-account:
    • Ga naar developer.apple.com
    • Navigeer naar Certificaten, ID's & Profielen
    • Vind het verlopen certificaat en herroep het
    • Ga terug naar Xcode en herhaal de bovenstaande stappen om een nieuwe te maken
  2. Wis afgeleide gegevens:
    • In Xcode: Venster > Organisator > Projecten tabblad
    • Selecteer je project en klik op Verwijderen naast Afgeleide Gegevens
  3. Herstart Xcode nadat je deze wijzigingen hebt gemaakt

Wat moet ik doen als mijn apparaat niet automatisch kon worden geregistreerd?

Om een telefoon handmatig te registreren met je Apple Developer-account, moet je deze toevoegen als testapparaat via het Apple Developer-portaal. Hier is hoe:

  1. Verkrijg de UDID (Unique Device Identifier) van je apparaat:
    • Verbind je iPhone met je Mac
    • Open Finder (macOS Catalina of later) of iTunes (oudere versies)
    • Selecteer je apparaat en klik op het serienummer tot het de UDID weergeeft
    • Klik met de rechtermuisknop en kopieer de UDID
    • Je kunt ook Xcodeopenen: Venster > Apparaten en Simulators, selecteer je apparaat en kopieer de identifier
  2. Voeg het apparaat toe aan je Developer-account:
    • Ga naar developer.apple.com en log in
    • Navigeer naar Certificaten, ID's & Profielen
    • Selecteer Apparaten uit de zijbalk
    • Klik op de plus (+) knop om een nieuw apparaat te registreren
    • Voer een naam in voor je apparaat en plak de UDID
    • Klik op **Doorgaan** en dan **Registreren**
  3. Herstart de Mobile Analyzer:

Houd er rekening mee dat gratis Apple Developer-accounts tot 3 apparaten kunnen registreren, terwijl betaalde accounts tot 100 apparaten per apparaattype kunnen registreren (100 iPhones, 100 iPads, enz.).

Geautomatiseerde Tests

Wat is een bundel-ID?

Een bundel-ID is een unieke identifier binnen het Apple-ecosysteem voor applicatie-identificatie. Geen twee applicaties kunnen dezelfde identifier hebben. Dit omvat een bètaversie of andere variaties van een applicatie. axe DevTools Mobile gebruikt de bundel-ID om toegang te krijgen tot en informatie op te vragen over de toegankelijkheid van de weergaven van de applicatie die wordt getest.

tip

Moet je een app uit de App Store testen? We kunnen de bundel-ID voor je ophalen. Zoek de vermelding van je applicatie in de App Store op vanuit een webbrowser en gebruik deze om de bundel-ID van je app te vinden.

Waar heeft de geïnstalleerde Runner Application toegang toe?

Alleen de applicatie waarmee je hebt aangegeven te communiceren, door de bundel-ID toe te voegen in de set-up stappen. Apple is erg goed in beveiliging en gebruikt een sandbox-omgeving voor elke applicatie die je op je apparaat hebt geïnstalleerd, ongeacht hoe die applicatie is geïnstalleerd (Testflight, Xcode of App Store). De analyzer applicatie maakt gebruik van UI Test-functionaliteit die is ingebouwd in het Xcode/Apple-ecosysteem. Dit is een gesloten communicatie met een applicatie via de bundel-ID die je in het Setup-bestand hebt opgegeven.

Veelvoorkomende Fouten en Oplossingen

Als je een foutmelding krijgt / Test Mislukt tijdens het testen, zal dit gedeelte de veelvoorkomende foutmeldingen en hoe je ze kunt oplossen belichten. Selecteer het ruitvormige rode ‘x’-icoon en Xcode zal het ‘Issue Navigator’-paneel aan de linkerkant openen om het specifieke foutbericht te markeren.

  • Cannot request screenshot data because it does not exist: Dit is het foutbericht dat je waarschijnlijk bij de eerste uitvoering krijgt. Voer de test opnieuw uit om te zien of het probleem is opgelost. Als deze fout zich een tweede keer voordoet, zorg er dan voor dat je de juiste bundel-ID hebt ingevoerd en dat de te testen applicatie open is op de geselecteerde simulator/apparaat.

  • caught error: “couldNotVerifyUser”: Inloggen met Deque is mislukt. Controleer of je API-sleutel aan het Setup-bestand is toegevoegd en geldig is voor axe DevTools Mobile door te bezoeken axe Accountinstellingen.

Kan ik opzetten voor geautomatiseerd testen zonder authenticatie?

We bieden offline builds van onze SDK's en Appium-drivers voor je automatiseringspijplijn die geen netwerkverzoeken naar de axe DevTools Mobile-service vereisen. Dergelijke buildconfiguraties zijn alleen beschikbaar via Deque's Artifactory.

Let op, deze build is een subset van mogelijkheden binnen axeDevToolsXCUI. Om de volledige set mogelijkheden te gebruiken, inclusief het pushen van resultaten naar het dashboard, gebruik dan ons axeDevToolsXCUI-framework. Raadpleeg de installatiegids.

Setup
  1. Importeer het framework in ieder bestand dat wordt gebruikt voor toegankelijkheidstesten.
import axeDevToolsXCUI_noauth
  1. Maak een object binnen je testklasse om de axe DevTools-instantie vast te houden:
var axeDevTools: AxeDevTools?
  1. Initialiseer het framework binnen de setUp of setUpWithError methodes.
axeDevTools = AxeDevTools.startSession()
Volledig Setup Voorbeeld

import axeDevToolsXCUI_noauth
import XCTest

class MyUITests: XCTestCase {

    var axeDevTools: AxeDevTools?

    override func setUpWithError() throws {
        axeDevTools = AxeDevTools.loginWithLicenseKey("deque_provided_license_key_here") // does this change??
    }
    ...
}
UI Testen

Om te beginnen met testen, geef een willekeurige XCUIElement door aan het framework om toegankelijkheidstests uit te voeren op het en zijn kinderen.

let result = try axeDevTools.run(onElement: XCUIApplication())
Volledig Voorbeeld
import XCTest
import axeDevToolsXCUI_noauth

final class XCUI_noAuthUITest: XCTestCase {
    var axeDevTools: AxeDevTools = AxeDevTools.startSession()

    override func setUpWithError() throws {
        continueAfterFailure = false
    }

    func testExample() throws {
        let app = XCUIApplication()
        app.launch()

        let result = try axeDevTools.run(onElement: app)
        // Do something with the result
    }
}
Wat nu?

We geven je de data en tools om een CI/CD-workflow te creëren die je team helpt. Hier zijn een paar suggesties voor wat je met dat resultaatobject kunt doen:

  1. Laat de build mislukken als er fouten werden gevonden. Als je een scherm hebt dat al is ontdaan van toegankelijkheidsproblemen, wil je misschien ervoor zorgen dat er geen nieuwe problemen in de ontwikkelingscyclus sluipen door te bevestigen dat het aantal 0 is, en de pull-request statuscheck te laten falen als dat niet zo is.
// Add an assertion to fail the build if issues were found
XCTAssertTrue(result.failures.count > 0)
  1. Bewaar de resultaten lokaal om een gerapporteerd overzicht te maken van de problemen die in de branch zijn gevonden. Bekijk het maken van een rapport met onze Reporter CLI voor CICD pijplijnen. Dit kan echt nuttig zijn voor release-kandidaat of bètatakken om bewustzijn te creëren over welke potentiële blokkades klanten die assistieve technologie gebruiken kunnen tegenkomen.

Resultaten

Waarom verschijnen mijn resultaten niet in Developer Hub?

Als je je resultaten niet ziet in Developer Hub, controleer dan of je het volgende hebt gedaan:

  • Zorg voor een geldige Axe DevTools Mobile API-sleutel bij het initialiseren van het Axe-framework in je tests. Bezoek Axe Account Instellingen om je API-sleutels te vinden of Genereer een nieuwe Axe DevTools Mobile API-sleutel.
  • Zorg voor een geldige Project-ID samen met de API-sleutel bij het starten van een testsessie. Een Project-ID is niet vereist om een testsessie te starten, maar het is vereist om resultaten naar Developer Hub te sturen. Wanneer je Een Project Creëert voor Je Resultaten, wordt er automatisch een Project-ID gegenereerd.
  • Roep de postResult functie aan na elke scan in je test om resultaten naar Developer Hub te sturen.
  • Zie een volledig voorbeeld. Raadpleeg de iOS Voorbeeld Testklasse en vergelijk het met je implementatie.
tip

Op zoek naar je Project-ID? Je kunt dit vinden op de hoofdpagina van Projecten in Axe Developer Hub.

  • Ga naar 'Instellingen' voor je project en selecteer 'Project Configureren'.
  • In de 'Projectdetails' kun je de Project-ID vinden en kopiëren.
  • Zorg ervoor dat je deze Project-ID hebt opgegeven aan de startSession methode.

Appium

Geautomatiseerd Testen

Kan ik opzetten voor geautomatiseerd testen zonder authenticatie?

Je kunt een scan uitvoeren met onze Appium offline drivers, met een licentiesleutel verstrekt door Deque. Dit kan nuttig zijn bij het werken met cloudproviders of wanneer je scans moet uitvoeren zonder netwerkverzoeken te doen naar de axe DevTools Mobile service.

Installatie

Je kunt de Appium offline drivers installeren met een privé npm-pakket van Deque's Artifactory:

Android
appium driver install --source=npm @axe-devtools/axe-appium-uiautomator2-driver-offline
iOS
appium driver install --source=npm @axe-devtools/axe-appium-xcuitest-driver-offline

Als alternatief kun je het rechtstreeks downloaden van Agora en lokaal installeren. Raadpleeg onze documentatie over Instellen voor Private Cloud en On Prem voor meer details.

Licentiesleutel

Je hebt een licentiesleutel van Deque nodig om deze offline versie van de Appium-driver te gebruiken. Stuur een verzoek naar helpdesk@deque.com of op support.deque.com.

De licentiesleutel zal in stringformaat zijn en er ongeveer zo uitzien: eyJjb21wYW55TmFtZSI6Ik1vYmlsZSBUZWFtIiwiZXhwaXJlcyI6MTcyMzk5NDk1MDY2NX0=.+aHokyifCnw6peuAmAq75IGrTjVSpkRhhfBWnf92Hp0WV3FF5Qph/KFNr7ALzi6/3K7BcSMKnelqtnwrd6mMkQ==

Het wordt sterk aanbevolen om deze licentiesleutel aan je omgevingsvariabelen toe te voegen voor de veiligheid.

Offline Scannen

Om een scan uit te voeren, zorg ervoor dat uw licentiesleutel is opgenomen in axeSettings.

const axeSettings = { 
  'licenseKey': 'YOUR_LICENSE_KEY_HERE'
};

const result = await driver.execute('mobile: axeScan', axeSettings);

In axeSettingszijn de volgende optionele eigenschappen beschikbaar:

  • ignoreRules (standaard: [])
  • ignoreExperimental (standaard: false)

Hieronder staan volledige voorbeelden van offline scans met onze Appium-drivers, gebruikmakend van het Mocha-testframework in JavaScript.

Android
const { remote } = require('webdriverio');
const assert = require('assert');

describe('AxeScan', () => {
    let driver;
    let axeSettings;

    before(async () => {
        axeSettings = {
            //  Your license key has been stored in an environment variable for security
            licenseKey: process.env.AXE_LICENSE_KEY
        };

        driver = await remote({
            hostname: 'localhost',
            port: 4723,
            capabilities: {
                platformName: 'Android',
                'appium:automationName': 'AxeUiAutomator2',
                'appium:deviceName': 'Android',
                'appium:appPackage': 'com.android.settings',
                'appium:appActivity': '.Settings',            
            },
            logLevel: 'silent'
        });
    });

    after(async () => {
        await driver.deleteSession();
    });

    it('scan settings screen', async () => {
        // run accessibility scan
        const result = await driver.execute('mobile: axeScan', axeSettings);

        // ensure no errors were encountered during the scan
        if (result.axeError) {
            assert.fail(`AxeScan failed with error: ${result.axeError}`);
        }

        const failCount = result.axeRuleResults.filter(rule => rule.status === 'FAIL').length;

        // assert that there are no accessibility violations
        assert.strictEqual(failCount, 0);
    });
});
iOS
const { remote } = require('webdriverio');
const assert = require('assert');

describe('AxeScan', () => {
    let driver;
    let axeSettings;

    before(async () => {
        axeSettings = {
            //  Your license key has been stored in an environment variable for security
            licenseKey: process.env.AXE_LICENSE_KEY
        };

        driver = await remote({
            hostname: 'localhost',
            port: 4723,
            capabilities: {
                platformName: 'iOS',
                'appium:automationName': 'AxeXCUITest',
                'appium:bundleId': 'com.apple.Maps',
                'appium:udid': '...', // xcrun simctl list | grep Booted         
            },
            logLevel: 'silent'
        });
    });

    after(async () => {
        await driver.deleteSession();
    });

    it('scan settings screen', async () => {
        // run accessibility scan
        const result = await driver.execute('mobile: axeScan', axeSettings);

        // ensure no errors were encountered during the scan
        if (result.axeError) {
            assert.fail(`AxeScan failed with error: ${result.axeError}`);
        }

        const failCount = result.axeRuleResults.filter(rule => rule.status === 'FAIL').length;

        // assert that there are no accessibility violations
        assert.strictEqual(failCount, 0);
    });
});

Resultaten

Waarom verschijnen mijn resultaten niet in Developer Hub?

Als u uw resultaten niet ziet in Developer Hub, controleer dan of u het volgende heeft gedaan:

tip

Op zoek naar uw Project-ID? U kunt deze vinden op de hoofdprojectenpagina in Axe Developer Hub.

  • Ga naar 'Instellingen' voor uw project en selecteer 'Project Configureren'.
  • In de 'Projectdetails' kunt u het Project-ID vinden en kopiëren.
  • Zorg ervoor dat u dit Project-ID heeft verstrekt aan de axeStartSession methode.