Ejemplo de Perfecto con XCUITest
Pruebe su aplicación iOS para detectar problemas de accesibilidad en dispositivos de Perfecto.
Ejecute sus pruebas de IU en Perfecto para obtener una comprensión integral del estado de accesibilidad de su aplicación en todos los dispositivos.
Requiere:
- Perfecto Enterprise Private Cloud
Prerrequisitos
- Sus pruebas de UI están integradas con axe DevTools Mobile para iOS. Si es necesario, consulte nuestra guía de inicio.
- Prepare su aplicación para su distribución. Dado que usted realizará pruebas en Perfecto con dispositivos reales, tener la aplicación y los objetivos de prueba de UI aprovisionados da como resultado un proceso más fluido.
- Instale Gradle.
Proyecto de ejemplo
¿Busca un ejemplo? Nuestro proyecto iOS de muestra tiene una integración lista para probar.
-
Verifique que tenga los prerrequisitos.
-
Descargue el proyecto de muestra de Github
-
Abra el archivo del proyecto Xcode para agregar su equipo de desarrollo a la aplicación y los objetivos de UITest para el aprovisionamiento
-
Agregue su clave API de axe DevTools for Mobile a
Login.swift
-
Ajuste los valores en las siguientes ubicaciones para que coincidan con su nube Perfecto:
perfecto.sh
CLOUDNAME="<<perfecto-cloud-name>>"
configFile.json
- Revise los valorescloudURL
,securityToken
ydeviceName
:
{ "cloudURL": "<<perfecto-cloud-name>>", "securityToken": "<<security-token>>", ... "devices": [ { "deviceName": "00005302-BF389EDED8B22DBD" } ], ... }
-
Abra una ventana de Terminal, ingrese
cd
y luego arrastre y suelteaxe-devtools-ios-sample-app
desde el Finder a la ventana de Terminal. Presione retorno/enter. -
En la misma ventana, escriba
sh perfecto.sh
. Presione retorno/enter.
Hay tres archivos en el proyecto de muestra utilizado para la integración de Perfecto: perfecto.sh
, configFile.json
y build.gradle
.
Integra Perfecto a tu prueba XCUI
Configuración
Nota: Se espera que los tres archivos estén en la raíz de su proyecto.
-
Crea un script de shell para orquestar la ejecución de pruebas en la plataforma de Perfecto. Asegúrese de ajustar los valores de
APP_LOCATION
,APP_NAME
yCLOUDNAME
para que coincidan con su aplicación y la nube de 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
-
Agregue su archivo Gradle,
build.gradle
. Asegúrese de actualizar la última sección para que coincida con los valores de su aplicación.// 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" } } }
-
Agregue el JSON de configuración de Perfecto y revise los valores
cloudURL
,securityToken
,appPath
,testAppPath
ydeviceName
para que coincidan con su autenticación de Perfecto, la aplicación y el UUID del dispositivo real disponible.Lo anterior
build.gradle
está buscando un archivo de configuración llamadoconfigFile.json
; asegúrese de actualizarlo si usa un nombre diferente.{ "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" }
Ejecutar
Una vez configurado su proyecto, ejecute el script de shell para ejecutar una prueba en su nube Perfecto.
Verificar localmente:
- Abra su proyecto en la Terminal.
- Escriba
sh perfecto.sh
y presione Intro. - Abra el análisis de pruebas de Perfecto Cloud para consultar su último informe.