Perfecto mit XCUITest
Testen Sie Ihre iOS-App auf Barrierefreiheitsprobleme mit Geräten von Perfecto.
Führen Sie Ihre UI-Tests auf Perfecto aus, um ein umfassendes Verständnis der Barrierefreiheit Ihrer App auf verschiedenen Geräten zu erhalten.
Erforderlich:
- Perfecto Enterprise Private Cloud
Voraussetzungen
- Ihre UI-Tests sind mit Axe DevTools Mobile für iOS integriert. Sehen Sie sich unser Einsteigerhandbuch an, falls benötigt.
- Bereiten Sie Ihre App für die Verteilung vor. Da Sie auf Perfecto mit echten Geräten testen werden, führt die Bereitstellung der App und der UI-Test-Ziele zu einem reibungsloseren Prozess.
- Installieren Sie Gradle.
Beispielprojekt
Suchen Sie ein Beispiel? Unser iOS-Beispielprojekt ist zur Integration bereit für Tests.
-
Überprüfen Sie, dass Sie die Voraussetzungen haben.
-
Laden Sie das Beispielprojekt von Github herunter
-
Öffnen Sie die Xcode-Projektdatei, um Ihr Entwicklungsteam den App- und UITest-Zielen zur Bereitstellung hinzuzufügen.
-
Fügen Sie Ihren Axe DevTools für Mobile-API-Schlüssel zu
Login.swifthinzu -
Passen Sie die Werte an den folgenden Stellen an, um mit Ihrem Perfecto-Cloud übereinzustimmen:
perfecto.sh
CLOUDNAME="<<perfecto-cloud-name>>"configFile.json- Überprüfen Sie die WertecloudURL,securityTokenunddeviceName:
{ "cloudURL": "<<perfecto-cloud-name>>", "securityToken": "<<security-token>>", ... "devices": [ { "deviceName": "00005302-BF389EDED8B22DBD" } ], ... } -
Öffnen Sie ein Terminalfenster, geben Sie
cdein und ziehen Sie dannaxe-devtools-ios-sample-appaus dem Finder in das Terminalfenster. Drücken Sie Return/Enter. -
Geben Sie im selben Fenster
sh perfecto.shein. Drücken Sie Return/Enter.
Im Beispielprojekt werden drei Dateien für die Perfecto-Integration verwendet: perfecto.sh, configFile.json und build.gradle.
Integrieren Sie Perfecto in Ihren XCUI-Test
Einrichtung
Hinweis: Alle drei Dateien sollten sich im Stammverzeichnis Ihres Projekts befinden.
-
Erstellen Sie ein Shell-Skript, um Tests auf Perfectos-Plattform zu orchestrieren. Stellen Sie sicher, dass Sie die Werte für
APP_LOCATION,APP_NAMEundCLOUDNAMEan Ihre Anwendung und die Perfecto-Cloud anpassen.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,
build.gradle, hinzu. Aktualisieren Sie den letzten Abschnitt so, dass 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 Perfecto-Konfigurations-JSON hinzu und überprüfen Sie die Werte
cloudURL,securityToken,appPath,testAppPathunddeviceName, um mit Ihrer Perfecto-Authentifizierung, Anwendung und verfügbarer realer Geräte-UUID übereinzustimmen.Die obige
build.gradlesucht eine Konfigurationsdatei mit dem NamenconfigFile.json- stellen Sie sicher, dass Sie sie aktualisieren, 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.
Lokal überprüfen:
- Öffnen Sie Ihr Projekt im Terminal.
- Geben Sie
sh perfecto.shein und drücken Sie Enter. - Öffnen Sie die Testanalyse Ihrer Perfecto-Cloud, um Ihren letzten Bericht zu überprüfen.
