Häufig gestellte Fragen
Android
Warum benötigt die App zusätzliche Berechtigungen?
Wenn Sie die Anwendung zum ersten Mal einrichten, werden Sie aufgefordert, axe DevTools Mobile Analyzer die Berechtigung zum Zeichnen über anderen Apps und Zugriff auf die Barrierefreiheitseinstellungen zu erteilen. Durch die Draw-Overlay-Funktion folgt Ihnen der Floating Action Button, unabhängig davon, welche App Sie auf Ihrem Gerät geöffnet haben. Über die Eingabehilfeneinstellungen kann die Analyse-App auf Anzeigeinformationen innerhalb der Anwendung zugreifen, die Sie scannen möchten.
Kann ich automatisierte Tests ohne Authentifizierung einrichten?
Der optimierte Build für Ihre Automatisierungspipeline erfordert keine Netzwerkanfragen an den axe DevTools Mobile-Dienst. Daher sind diese Build-Konfigurationen nur über verfügbar Deque Artifactory.
Bitte beachten Sie, dass dieser Build eine Teilmenge der Funktionen von axeDevTools Mobile für Android ist. Um den vollständigen Funktionsumfang zu nutzen, einschließlich der Übertragung der Ergebnisse an das Dashboard, verwenden Sie bitte unser vollständiges Framework. Siehe Anleitung zum Einstieg.
Einrichtung
Beachten Sie beim Navigieren in der Dokumentation, dass in diesem optimierten Build nicht alle Funktionen verfügbar sind, die eine Serverinteraktion erfordern.
Checkliste für die ersten Schritte:
- Erfordert: Android API 26 oder höher
- Stellen Sie eine Verbindung zu Artifactory her, um das Framework einzubinden.
Einrichtung zum Testen
Fügen Sie in der Anwendungsdatei build.gradle Folgendes hinzu:
androidTestImplementation 'com.deque.android.no-auth:axe-devtools-android:7.0.1'
und
android {
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/AL2.0'
exclude 'META-INF/LGPL2.1'
}
}
Espresso-Testbeispiel
Beachten Sie, dass die axe.loginWithUsername(...) and axe.loginWithApiKey(...)
in dieser Version der Bibliothek nicht verfügbar sind und aus dem Setup-Code entfernt werden sollten, wenn Sie von der authentifizierten Version konvertieren.
Layout-Agnostisch
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Rule
@JvmField
var rule: ActivityScenarioRule<MainActivity> = ActivityScenarioRule(MainActivity::class.java)
companion object {
private val axe = AxeDevTools()
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()
}
}
iOS
Was ist ein Bundle-Identifier?
Ein Bundle-Identifier ist eine eindeutige Kennung innerhalb des Apple-Ökosystems zur Anwendungsidentifizierung. Keine zwei Anwendungen können dieselbe Kennung haben. Hierzu gehören eine Betaversion oder andere Varianten einer Anwendung. axe DevTools Mobile verwendet die Bundle-ID, um eine Verbindung herzustellen und die Zugänglichkeitsinformationen der Ansichten der getesteten Anwendung abzufragen.
Müssen Sie eine App aus dem App Store testen? Wir können die Bundle-ID für Sie ermitteln. Suchen Sie in einem Webbrowser nach dem App Store-Eintrag Ihrer Anwendung, und verwenden Sie ihn um die Bundle-ID Ihrer App zu finden .
Worauf hat die installierte Runner-Anwendung Zugriff?
Nur die Anwendung, die Sie durch Hinzufügen der Bundle-ID in den Einrichtungsschritten zur Kommunikation angegeben haben, kann kommunizieren. Apple legt großen Wert auf Sicherheit und verwendet für jede Anwendung, die Sie auf Ihrem Gerät installiert haben, eine Sandbox-Umgebung , unabhängig davon, wie die Anwendung installiert wurde (Testflight, Xcode oder App Store). Die Analyseanwendung nutzt die im Xcode/Apple-Ökosystem integrierte UI-Testfunktion. Dies ist eine geschlossene Kommunikationsbox, um mit einer Anwendung über die Bundle-ID zu kommunizieren, die Sie in der Setup-Datei angegeben haben.
Häufige Fehler und deren Behebung
Wenn beim Testen eine Fehlermeldung/ein Testfehler auftritt, werden in diesem Abschnitt die häufigsten Fehlermeldungen und deren Lösung hervorgehoben. Wählen Sie das rautenförmige rote „x“-Symbol aus. Xcode öffnet dann links das Fenster „Issue Navigator“, um die jeweilige Fehlermeldung hervorzuheben.
-
Cannot request screenshot data because it does not exist
: Dies ist die Fehlermeldung, die Sie wahrscheinlich beim ersten Durchlauf erhalten. Führen Sie den Test erneut aus, um zu sehen, ob das Problem behoben ist. Wenn dieser Fehler ein zweites Mal auftritt, stellen Sie sicher, dass Sie die richtige Bundle-ID haben und dass die zu testende Anwendung auf dem ausgewählten Simulator/Gerät geöffnet ist. -
caught error: "couldNotVerifyUser"
: Anmeldung mit Deque fehlgeschlagen. Überprüfen Sie, ob Ihr API-Schlüssel zur Setup-Datei hinzugefügt wurde und für axe DevTools Mobile gültig ist, indem Sie axe-Kontoeinstellungen aufrufen.
Kann ich automatisierte Tests ohne Authentifizierung einrichten?
Der optimierte Build für Ihre Automatisierungspipeline erfordert keine Netzwerkanfragen an den axe DevTools Mobile-Dienst. Daher sind diese Build-Konfigurationen nur über verfügbar Deque Artifactory.
Bitte beachten Sie, dass diese Version eine Teilmenge der Funktionen von axeDevToolsXCUI ist. Um den vollständigen Funktionsumfang zu nutzen, einschließlich der Übertragung der Ergebnisse an das Dashboard, verwenden Sie bitte unser axeDevToolsXCUI-Framework. Weitere Informationen finden Sie in der Setup-Anleitung.
Einrichtung
- Importieren Sie das Framework in jede Datei, die für Barrierefreiheitstests verwendet wird.
import axeDevToolsXCUI_noauth
- Erstellen Sie in Ihrer Testklasse ein Objekt, um die axe DevTools Instanz zu speichern:
var axeDevTools: AxeDevTools?
- Initialisieren Sie das Framework innerhalb der Methoden
setUp
odersetUpWithError
.
axeDevTools = AxeDevTools.login()
Vollständiges Einrichtungsbeispiel
import axeDevToolsXCUI_noauth
import XCTest
class MyUITests: XCTestCase {
var axeDevTools: AxeDevTools?
override func setUpWithError() throws {
axeDevTools = AxeDevTools.login()
}
...
}
UI-Tests
Um mit dem Testen zu beginnen, übergeben Sie jedes XCUIElement
an das Framework, um Erreichbarkeitstests für das Framework und seine untergeordneten Elemente auszuführen.
let result = try axeDevTools.run(onElement: XCUIApplication())
Vollständiges Beispiel
import XCTest
import axeDevToolsXCUI_noauth
final class XCUI_noAuthUITest: XCTestCase {
var axeDevTools: AxeDevTools = AxeDevTools.login()
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
}
}
Was kommt als Nächstes?
Wir geben Ihnen die Daten und Tools, um einen CI/CD-Workflow zu erstellen, der Ihrem Team hilft. Hier sind einige Vorschläge, was Sie mit diesem Ergebnisobjekt tun können:
- Lassen Sie den Build fehlschlagen, wenn Fehler gefunden wurden. Wenn bei einem Bildschirm bereits keine Zugänglichkeitsprobleme mehr vorliegen, möchten Sie möglicherweise sicherstellen, dass im Verlauf des Entwicklungslebenszyklus keine neuen Probleme auftreten. Dazu geben Sie an, dass der Zähler 0 beträgt, und lassen die Statusprüfung der Pull-Anfrage scheitern, wenn dies nicht der Fall ist.
// Add an assertion to fail the build if issues were found
XCTAssertTrue(result.failures.count > 0)
- Speichern Sie die Ergebnisse lokal , um einen Bericht mit begrenztem Umfang über die im Zweig gefundenen Probleme zu erstellen. Überprüfen Sie das Erstellen eines Berichts mit unserem Reporter CLI für CICD-Pipelines. Dies kann für Release-Candidate- oder Beta-Branches sehr hilfreich sein, um ein Bewusstsein dafür zu schaffen, mit welchen potenziellen Hindernissen Kunden bei der Verwendung unterstützender Technologien konfrontiert werden können.