Perfecto con XCUITest
Testa la tua app iOS per problemi di accessibilità su dispositivi di Perfecto.
Esegui i tuoi Test UI su Perfecto per ottenere una comprensione completa dello stato di accessibilità della tua app su diversi dispositivi.
Requisiti:
- Perfecto Enterprise Private Cloud
Prerequisiti
- I tuoi Test UI sono integrati con Axe DevTools Mobile per iOS. Controlla la nostra guida introduttiva se necessario.
- Prepara la tua app per la distribuzione. Poiché testerai su Perfecto con dispositivi reali, avere l'app e gli obiettivi dei Test UI provisionati rende il processo più fluido.
- Installa Gradle.
Progetto d'esempio
Cerchi un esempio? Il nostro Progetto iOS di esempio ha un'integrazione pronta per il test.
-
Verifica di avere i prerequisiti.
-
Scarica il progetto d'esempio da Github
-
Apri il file di progetto Xcode per aggiungere il tuo team di sviluppo all'app e agli obiettivi UITest per il provisioning
-
Aggiungi il tuo Chiave API di Axe DevTools per Mobile a
Login.swift -
Adatta i valori nei seguenti luoghi per adattarli al tuo cloud Perfecto:
perfecto.sh
CLOUDNAME="<<perfecto-cloud-name>>"configFile.json- Controlla i valoricloudURL,securityTokenedeviceName:
{ "cloudURL": "<<perfecto-cloud-name>>", "securityToken": "<<security-token>>", ... "devices": [ { "deviceName": "00005302-BF389EDED8B22DBD" } ], ... } -
Apri una finestra Terminale, inserisci
cde quindi trascina e rilascia ilaxe-devtools-ios-sample-appda Finder nella finestra del Terminale. Premi ret/enter. -
Nella stessa finestra, digita
sh perfecto.sh. Premi ret/enter.
Ci sono tre file nel progetto d'esempio utilizzati per l'integrazione con Perfecto: perfecto.sh, configFile.json e build.gradle.
Aggiungi Perfecto al tuo XCUI Test
Configurazione
Nota: Tutti e tre i file si aspettano di essere nella radice del tuo progetto.
-
Crea uno script shell, per orchestrare l'esecuzione dei test sulla piattaforma di Perfecto. Assicurati di modificare i valori per
APP_LOCATION,APP_NAMEeCLOUDNAMEin modo che corrispondano alla tua applicazione e al tuo 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 per farla corrispondere 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 controlla che i valori
cloudURL,securityToken,appPath,testAppPathedeviceNamecorrispondano alla tua autenticazione Perfecto, applicazione e UUID di dispositivo reale disponibile.Il
build.gradlesopra sta cercando un file di configurazione chiamatoconfigFile.json- assicurati di aggiornarlo se usi 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.
Verifica in locale:
- Apri il tuo progetto nel Terminale.
- Digita
sh perfecto.she premi invio. - Apri l'Analisi dei Test del tuo Cloud Perfecto per controllare il tuo ultimo rapporto.
