Perfecto con XCUITest
Prueba tu aplicación iOS para detectar problemas de accesibilidad en dispositivos de Perfecto.
Ejecuta tus pruebas de UI en Perfecto para obtener una comprensión completa del estado de accesibilidad de tu aplicación en diferentes dispositivos.
Requisitos:
- Perfecto Enterprise Private Cloud
Requisitos previos
- Tus pruebas de UI están integradas con Axe DevTools Mobile para iOS. Consulta nuestra guía de introducción si es necesario.
- Prepara tu aplicación para distribución. Dado que probarás en Perfecto con dispositivos reales, tener la aplicación y los objetivos de prueba de UI aprovisionados resulta en un proceso más fluido.
- Instala Gradle.
Proyecto de ejemplo
¿Buscas un ejemplo? Nuestro proyecto de muestra para iOS tiene una integración lista para probar.
-
Verifica que tienes los requisitos previos.
-
Descarga el proyecto de muestra de Github
-
Abre el archivo del proyecto Xcode para añadir tu equipo de desarrollo a los objetivos de la aplicación y UITest para el aprovisionamiento
-
Agrega tu clave de API de Axe DevTools para Mobile a
Login.swift -
Ajusta los valores en las siguientes ubicaciones para que coincidan con tu nube de Perfecto:
perfecto.sh
CLOUDNAME="<<perfecto-cloud-name>>"configFile.json- Revisa los valorescloudURL,securityTokenydeviceName:
{ "cloudURL": "<<perfecto-cloud-name>>", "securityToken": "<<security-token>>", ... "devices": [ { "deviceName": "00005302-BF389EDED8B22DBD" } ], ... } -
Abre una ventana de Terminal, ingresa
cdy luego arrastra y suelta elaxe-devtools-ios-sample-appdesde Finder a la ventana del Terminal. Presiona return/enter. -
En la misma ventana, escribe
sh perfecto.sh. Presiona return/enter.
Hay tres archivos en el proyecto de muestra utilizados para la integración con Perfecto: perfecto.sh, configFile.json y build.gradle.
Agregar Perfecto a Tu Prueba XCUI
Configuración
Nota: Los tres archivos esperan estar en la raíz de tu proyecto.
-
Crea un script de shell para orquestar la ejecución de pruebas en la plataforma de Perfecto. Asegúrate de ajustar los valores de
APP_LOCATION,APP_NAMEyCLOUDNAMEpara que coincidan con tu 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 -
Agrega tu archivo de Gradle,
build.gradle. Asegúrate de actualizar la última sección para que coincida con los valores de tu 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" } } } -
Agrega el JSON de configuración de Perfecto y revisa los valores
cloudURL,securityToken,appPath,testAppPathydeviceNamepara que coincidan con tu autenticación de Perfecto, aplicación y UUID de dispositivo real disponible.El
build.gradleanterior está buscando un archivo de configuración llamadoconfigFile.json- asegúrate de actualizarlo si usas 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" }
Ejecución
Una vez que tu proyecto esté configurado, ejecuta el script de shell para realizar una prueba en tu nube de Perfecto.
Verificar localmente:
- Abre tu proyecto en el Terminal.
- Escribe
sh perfecto.shy presiona enter. - Abre el Análisis de Pruebas de tu Nube de Perfecto para ver tu último informe.
