Perfecto met XCUITest
Test je iOS-app op toegankelijkheidsproblemen op apparaten van Perfecto.
Voer je UI-tests uit op Perfecto om een volledig begrip te krijgen van de toegankelijkheid van je app op verschillende apparaten.
Vereist:
- Perfecto Enterprise Private Cloud
Vereisten
- Je UI-tests zijn geïntegreerd met axe DevTools Mobile voor iOS. Bekijk onze startgids indien nodig.
- Bereid je app voor op distributie. Aangezien je met echte apparaten op Perfecto gaat testen, zorgt het provisioneren van de app en UI-testdoelen voor een soepeler proces.
- Installeer Gradle.
Voorbeeldproject
Op zoek naar een voorbeeld? Ons Sample iOS Project heeft een integratie die klaar is om te testen.
-
Verifieer dat je aan de vereisten voldoet.
-
Download het voorbeeldproject van Github
-
Open het Xcode-projectbestand om je ontwikkelteam toe te voegen aan de app- en UITest-doelen voor provisioning.
-
Voeg je axe DevTools voor Mobile API-sleutel toe aan
Login.swift -
Pas de waarden aan op de volgende locaties zodat ze overeenkomen met je Perfecto-cloud:
perfecto.sh
CLOUDNAME="<<perfecto-cloud-name>>"configFile.json- Controleer de waardencloudURL,securityToken, endeviceName:
{ "cloudURL": "<<perfecto-cloud-name>>", "securityToken": "<<security-token>>", ... "devices": [ { "deviceName": "00005302-BF389EDED8B22DBD" } ], ... } -
Open een Terminal-venster, voer in
cd, en sleep vervolgens deaxe-devtools-ios-sample-appvan Finder naar het Terminal-venster. Druk op return/enter. -
Typ in hetzelfde venster
sh perfecto.sh. Druk op return/enter.
Er zijn drie bestanden in het voorbeeldproject die worden gebruikt voor Perfecto-integratie: perfecto.sh, configFile.json, en build.gradle.
Voeg Perfecto toe aan je XCUI-test
Setup
Opmerking: Alle drie de bestanden moeten in de hoofdmap van je project staan.
-
Maak een shell-script om de uitvoering van tests op het Perfecto-platform te coördineren. Zorg ervoor dat je de waarden voor
APP_LOCATION,APP_NAMEenCLOUDNAMEaanpast zodat ze overeenkomen met je applicatie en Perfecto-cloud.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 -
Voeg je Gradle-bestand toe,
build.gradle. Zorg ervoor dat je het laatste gedeelte bijwerkt zodat het overeenkomt met de waarden van je applicatie.// 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" } } } -
Voeg Perfecto's configuratie JSON toe en controleer de waarden
cloudURL,securityToken,appPath,testAppPathendeviceNameom overeen te komen met uw Perfecto-authenticatie, applicatie en beschikbare UUID van het echte apparaat.Het bovenstaande
build.gradlezoekt naar een configuratiebestand genaamdconfigFile.json- zorg ervoor dat u het bijwerkt als u een andere naam gebruikt.{ "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" }
Uitvoeren
Zodra uw project is ingesteld, voert u het shell-script uit om een test op uw Perfecto-cloud uit te voeren.
Controleer lokaal:
- Open uw project in de Terminal.
- Typ
sh perfecto.shen druk op enter. - Open de Testanalyse van uw Perfecto Cloud om uw meest recente rapport te bekijken.
