Esempio di Perfecto con XCUITest
Verifica la presenza di problemi di accessibilità nella tua app iOS sui dispositivi Perfecto.
Esegui i tuoi test dell'interfaccia utente su Perfecto per ottenere una panoramica completa dello stato di accessibilità della tua app su tutti i dispositivi.
Richiede:
- Perfecto Enterprise Nuvola Privata
Prerequisiti
- I test dell'interfaccia utente sono integrati con axe DevTools Mobile per iOS. Se necessario, consulta la nostra guida introduttiva .
- Prepara la tua app per la distribuzione. Poiché eseguirai i test su Perfecto con dispositivi reali, avere l'app e gli obiettivi di test dell'interfaccia utente provisionati renderà il processo più fluido.
- Installa Gradle.
Progetto di esempio
Cerchi un esempio? Il nostro progetto iOS di esempio ha un'integrazione pronta per essere testata.
-
Verifica di possedere i prerequisiti.
-
Scarica il progetto di esempio da Github
-
Apri il file di progetto Xcode per aggiungere il tuo team di sviluppo all'app e ai target UITest per il provisioning
-
Aggiungi la tua chiave API axe DevTools for Mobile a
Login.swift
-
Adatta i valori nelle seguenti posizioni in modo che corrispondano al tuo cloud Perfecto:
perfecto.sh
CLOUDNAME="<<perfecto-cloud-name>>"
configFile.json
- Rivedi i valoricloudURL
,securityToken
edeviceName
:
{ "cloudURL": "<<perfecto-cloud-name>>", "securityToken": "<<security-token>>", ... "devices": [ { "deviceName": "00005302-BF389EDED8B22DBD" } ], ... }
-
Apri una finestra del Terminale, digita
cd
, quindi trascina e rilasciaaxe-devtools-ios-sample-app
dal Finder nella finestra del Terminale. Premi invio. -
Nella stessa finestra, digitare
sh perfecto.sh
. Premi invio.
Nel progetto di esempio utilizzato per l'integrazione di Perfecto sono presenti tre file: perfecto.sh
, configFile.json
e build.gradle
.
Aggiungi Perfecto al tuo test XCUI
Configurazione
Nota: tutti e tre i file devono trovarsi nella radice del progetto.
-
Crea uno script shell per orchestrare l'esecuzione dei test sulla piattaforma Perfecto. Assicurati di adattare i valori per
APP_LOCATION
,APP_NAME
eCLOUDNAME
in modo che corrispondano alla tua applicazione e al 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
-
Aggiungi il tuo file Gradle,
build.gradle
. Assicurati di aggiornare l'ultima sezione in modo che corrisponda ai valori della tua applicazione.// 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" } } }
-
Aggiungi il file JSON di configurazione di Perfecto e rivedi i valori
cloudURL
,securityToken
,appPath
,testAppPath
edeviceName
affinché corrispondano all'autenticazione Perfecto, all'applicazione e all'UUID del dispositivo reale disponibile.Il precedente
build.gradle
sta cercando un file di configurazione denominatoconfigFile.json
: assicurati di aggiornarlo se utilizzi un nome diverso.{ "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" }
Esegui
Una volta impostato il progetto, esegui lo script shell per eseguire un test sul tuo cloud Perfecto.
Verificare localmente:
- Apri il tuo progetto nel Terminale.
- Digita
sh perfecto.sh
e premi Invio. - Apri l'analisi dei test di Perfecto Cloud per consultare il report più recente.