Exemple de 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 vue d'ensemble de l'état d'accessibilité de votre application sur tous les appareils.
nécessite :
- Cloud Privé d'Entreprise Perfecto
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. Étant donné que vous effectuerez des tests sur Perfecto avec de vrais appareils, le fait que les cibles de test de l'application et de l'interface utilisateur soient préparées et équipées se traduit par un processus plus fluide.
- Installez Gradle.
Exemple de projet
Vous cherchez un exemple ? Notre exemple de projet iOS dispose d'une intégration prête à être testée.
-
Vérifiez que vous avez les prérequis.
-
Téléchargez le projet d'exemple depuis Github
-
Ouvrez le fichier de projet Xcode pour ajouter votre équipe de développement à l'application et aux cibles UITest pour le provisionnement
-
Ajoutez votre clé API axe DevTools for Mobile à
Login.swift
-
Ajustez les valeurs aux emplacements suivants pour qu'elles correspondent à votre cloud Perfecto :
perfecto.sh
CLOUDNAME="<<perfecto-cloud-name>>"
configFile.json
- Vérifiez les valeurscloudURL
,securityToken
etdeviceName
:
{ "cloudURL": "<<perfecto-cloud-name>>", "securityToken": "<<security-token>>", ... "devices": [ { "deviceName": "00005302-BF389EDED8B22DBD" } ], ... }
-
Ouvrez une fenêtre Terminal, entrez
cd
, puis faites glisser et déposez le fichier du Finder dans la fenêtre Terminal.axe-devtools-ios-sample-app
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 l'exemple de projet utilisé pour l'intégration Perfecto : perfecto.sh
, configFile.json
et build.gradle
.
Ajoutez Perfecto à votre test XCUI
Configuration
Remarque : les trois fichiers devraient se trouver à la racine de votre projet.
-
Créez un script shell pour orchestrer l'exécution des tests sur la plateforme Perfecto. Assurez-vous d'ajuster les valeurs de
APP_LOCATION
,APP_NAME
etCLOUDNAME
pour qu'elles correspondent à 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 qu'elle corresponde 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 vérifiez les valeurs
cloudURL
,securityToken
,appPath
,testAppPath
etdeviceName
pour qu'elles correspondent à votre authentification Perfecto, à votre application et à l'UUID de l'appareil réel disponible.Ce qui précède
build.gradle
recherche un fichier deconfigFile.json
configuration nommé - 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écuter
Une fois votre projet configuré, exécutez le script shell pour exécuter un test sur votre cloud Perfecto.
Vérifier localement :
- Ouvrez votre projet dans le Terminal.
- Tapez
sh perfecto.sh
et appuyez sur Entrée. - Ouvrez l'analyse de test de votre Perfecto Cloud pour consulter votre dernier rapport.