Perfecto avec XCUITest
Testez votre application iOS pour détecter les problèmes d'accessibilité sur les appareils de Perfecto.
Exécutez vos tests d'interface utilisateur sur Perfecto pour obtenir une compréhension complète de la santé de l'accessibilité de votre application sur différents appareils.
Exigences :
- Perfecto Enterprise Private Cloud
Prérequis
- Vos tests d'interface utilisateur sont intégrés à Axe DevTools Mobile pour iOS. Consultez notre guide de démarrage si nécessaire.
- Préparez votre application pour la distribution. Puisque vous allez tester sur Perfecto avec de vrais appareils, avoir l'application et les cibles de test d'interface utilisateur provisionnées rend le processus plus fluide.
- Installez Gradle.
Projet Exemple
Vous cherchez un exemple ? Notre projet iOS d'exemple est prêt pour les tests.
-
Vérifiez que vous avez les prérequis.
-
Téléchargez le projet exemple depuis Github
-
Ouvrez le fichier projet Xcode pour ajouter votre équipe de développement aux cibles de l'application et des tests d'interface utilisateur pour le provisionnement.
-
Ajoutez votre clé API Axe DevTools pour Mobile à
Login.swift -
Ajustez les valeurs aux emplacements suivants pour correspondre à votre cloud Perfecto :
perfecto.sh
CLOUDNAME="<<perfecto-cloud-name>>"configFile.json- Passez en revue les valeurscloudURL,securityToken, etdeviceName:
{ "cloudURL": "<<perfecto-cloud-name>>", "securityToken": "<<security-token>>", ... "devices": [ { "deviceName": "00005302-BF389EDED8B22DBD" } ], ... } -
Ouvrez une fenêtre Terminal, saisissez
cd, puis faites glisser et déposez leaxe-devtools-ios-sample-appde Finder dans la fenêtre du Terminal. Appuyez sur retour/entrée. -
Dans la même fenêtre, tapez
sh perfecto.sh. Appuyez sur retour/entrée.
Il y a trois fichiers dans le projet exemple utilisés pour l'intégration avec Perfecto : perfecto.sh, configFile.json, et build.gradle.
Ajoutez Perfecto à Votre Test XCUI
Configuration
Remarque : Les trois fichiers sont censés se trouver à la racine de votre projet.
-
Créez un script shell, pour orchestrer l'exécution des tests sur la plateforme de Perfecto. Assurez-vous d'ajuster les valeurs pour
APP_LOCATION,APP_NAMEetCLOUDNAMEafin de correspondre à votre application et au cloud Perfecto.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 -
Ajoutez votre fichier Gradle,
build.gradle. Assurez-vous de mettre à jour la dernière section pour correspondre aux valeurs de votre application.// 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" } } } -
Ajoutez la configuration JSON de Perfecto et passez en revue les valeurs
cloudURL,securityToken,appPath,testAppPathetdeviceNamepour correspondre à votre authentification Perfecto, à votre application et à l'UUID des appareils réels disponibles.Le
build.gradleci-dessus cherche un fichier de configuration nomméconfigFile.json- assurez-vous de le mettre à jour si vous utilisez un nom différent.{ "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" }
Exécution
Une fois que votre projet est configuré, exécutez le script shell pour lancer un test sur votre cloud Perfecto.
Vérification locale :
- Ouvrez votre projet dans le Terminal.
- Tapez
sh perfecto.shet appuyez sur entrée. - Ouvrez l'Analyse de Test de votre Cloud Perfecto pour consulter votre dernier rapport.
