Perfecto mit XCUITest-Beispiel
Testen Sie Ihre iOS-App auf Barrierefreiheitsprobleme auf Geräten von Perfecto.
Führen Sie Ihre UI-Tests auf Perfecto aus, um einen umfassenden Überblick über die Zugänglichkeit Ihrer App auf allen Geräten zu erhalten.
Erfordert:
- Perfecto Enterprise Private Cloud
Voraussetzungen
- Ihre UI-Tests sind in axe DevTools Mobile für iOS integriert. Sehen Sie sich unsere Anleitung für die ersten Schritte an, falls nötig.
- Bereiten Sie Ihre App für die Verteilung vor. Da Sie auf Perfecto mit echten Geräten testen, sorgt die Bereitstellung der App- und UI-Testziele für einen reibungsloseren Ablauf.
- Installieren Sie Gradle.
Beispielprojekt
Suchen Sie ein Beispiel? Unser iOS-Beispielprojekt verfügt über eine testbereite Integration.
-
Überprüfen Sie, ob Sie die Voraussetzungen erfüllen.
-
Laden Sie das herunter Beispielprojekt von Github
-
Öffnen Sie die Xcode-Projektdatei, um Ihr Entwicklungsteam zur App und zu UITest-Targets für die Provisionierung hinzuzufügen.
-
Fügen Sie Ihren axe DevTools for Mobile API-Schlüssel zu
Login.swift
hinzu -
Passen Sie die Werte an den folgenden Stellen an, damit sie zu Ihrer Perfecto-Cloud passen:
perfecto.sh
CLOUDNAME="<<perfecto-cloud-name>>"
configFile.json
- Überprüfen Sie die WertecloudURL
,securityToken
unddeviceName
:
{ "cloudURL": "<<perfecto-cloud-name>>", "securityToken": "<<security-token>>", ... "devices": [ { "deviceName": "00005302-BF389EDED8B22DBD" } ], ... }
-
Öffnen Sie ein Terminalfenster, geben Sie
cd
ein und ziehen Sie dannaxe-devtools-ios-sample-app
per Drag & Drop aus dem Finder in das Terminalfenster. Drücken Sie die Eingabetaste. -
Geben Sie im selben Fenster
sh perfecto.sh
ein. Drücken Sie die Eingabetaste.
Im Beispielprojekt, das für die Perfecto-Integration verwendet wird, gibt es drei Dateien: perfecto.sh
, configFile.json
und build.gradle
.
Fügen Sie Perfecto zu Ihrem XCUI-Test hinzu
Einrichtung
Hinweis: Alle drei Dateien sollten sich im Stammverzeichnis Ihres Projekts befinden.
-
Erstellen Sie ein Shell-Skript, um die Ausführung von Tests auf der Perfecto-Plattform zu orchestrieren. Passen Sie die Werte für
APP_LOCATION
,APP_NAME
undCLOUDNAME
unbedingt an Ihre Anwendung und Perfecto-Cloud an.APP_LOCATION="DerivedData/Build/Products/Debug-iphoneos" APP_NAME="axe-devtools-ios-sample-app" CLOUDNAME="<<perfecto-cloud-name>>" TOKEN="<<security-token>>" JOBNUMBER="<<job-number>>" rm -rf *.app # Prepare app files gradle buildForRealDevice mv $APP_LOCATION/$APP_NAME.app . mv $APP_LOCATION/"$APP_NAME"UITests-Runner.app . # Run on Perfecto cloud gradle perfecto-xctest -PconfigFileLocation=configFile.json -PcloudURL=$CLOUDNAME.perfectomobile.com -PsecurityToken=$TOKEN -PjobNumber=$JOBNUMBER --stacktrace --debug rm -rf DerivedData
-
Fügen Sie Ihre Gradle-Datei hinzu
build.gradle
. Aktualisieren Sie unbedingt den letzten Abschnitt, damit er den Werten Ihrer Anwendung entspricht.// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { def flatDirPath = project.hasProperty('flatDirPath') ? project.getProperty('flatDirPath') : '' if(flatDirPath != '') { flatDir { dirs flatDirPath } } else { maven { url "https://repo1.perfectomobile.com/public/repositories/maven/" } } } dependencies { classpath "com.perfectomobile.instrumentedtest.gradleplugin:plugin:+" } } apply plugin: 'com.perfectomobile.instrumentedtest.gradleplugin' perfectoGradleSettings { configFileLocation "configFile.json" } tasks.register('cleanPreviousBuild', Exec) { workingDir projectDir commandLine "bash", "-c", "rm -fr *.xctestproducts dd" } tasks.register('buildForRealDevice') { dependsOn cleanPreviousBuild doLast { exec { commandLine "bash", "-c", "xcodebuild build-for-testing " + " -destination generic/platform='iOS' " + " -configuration Debug" + " -scheme axe-devtools-ios-sample-app" + " -target axe-devtools-ios-sample-appUITests" + " -sdk iphoneos" + " -derivedDataPath DerivedData/ -quiet -allowProvisioningUpdates" } } }
-
Fügen Sie die JSON-Konfigurationsdatei von Perfecto hinzu und überprüfen Sie die Werte
cloudURL
,securityToken
,appPath
,testAppPath
unddeviceName
, um sie an Ihre Perfecto-Authentifizierung, Anwendung und die verfügbare UUID des realen Geräts anzupassen.Oben
build.gradle
wird nach einer Konfigurationsdatei mit dem NamenconfigFile.json
gesucht. Aktualisieren Sie sie unbedingt, wenn Sie einen anderen Namen verwenden.{ "cloudURL": "<<perfecto-cloud-name>>", "securityToken": "<<security-token>>", "appPath": "axe-devtools-ios-sample-app.app", "testAppPath": "axe-devtools-ios-sample-appUITests-Runner.app", "devices": [ { "deviceName": "00005302-BF389EDED8B22DBD" } ], "tags": [ "xcuitest", "sample" ], "projectName": "Axe-XCUITest", "projectVersion": "v1-test", "jobName": "AXE-XCUITEST-LATEST", "jobNumber": 1, "branch": "master", "failBuildOnFailure": false, "installationDetails": { "preCleanUp": true, "resign": true }, "postExecution": { "uninstall": false }, "acquireDeviceRetryNumber": 1, "acquireDeviceRetryInterval": 200, "debug": true, "runUnitTests": true, "runUiTests": true, "shard": false, "takeScreenshotOnTestEnd": true, "testTimeout": "60000" }
Ausführen
Sobald Ihr Projekt eingerichtet ist, führen Sie das Shell-Skript aus, um einen Test in Ihrer Perfecto-Cloud auszuführen.
Überprüfen Sie lokal:
- Öffnen Sie Ihr Projekt im Terminal.
- Geben Sie
sh perfecto.sh
ein und drücken Sie die Eingabetaste. - Öffnen Sie die Testanalyse Ihrer Perfecto Cloud, um Ihren neuesten Bericht anzuzeigen.