Sauce Labs con XCUITest
Al usar axe DevTools Mobile, puede encontrar problemas de accesibilidad con sus pruebas de UI. Integre su prueba con Sauce Labs y obtenga información sobre la experiencia de la audiencia en su aplicación, ¡incluso antes de que la vean! Sauce Labs es la plataforma de pruebas basada en la nube más grande, que alberga diversas configuraciones de dispositivos y simuladores para fortalecer su confianza digital. Configure sus pruebas para ejecutarse en Sauce dentro de su automatización de compilación actual, para detectar problemas antes de que lleguen a producción.
A continuación se muestra una guía para ejecutar sus pruebas de UI integradas con axe DevTools Mobile y Sauce Labs.
Prerrequisitos
- Prepare su aplicación para su distribución. Dado que las pruebas en Sauce Labs se realizan con dispositivos reales, tener la aplicación y los objetivos de UITest aprovisionados antes de enviarlos a su servicio para re-firmarlos dará como resultado un proceso más fluido.
- Instale la interfaz de línea de comandos
saucectly configure sus credenciales de Sauce Labs. Siga las instrucciones de Sauce Labs.
¿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 una ventana de Terminal, ingrese
cdy luego arrastre y suelteaxe-devtools-ios-sample-appdesde el Finder a la ventana de Terminal. Presione retorno/enter. - En la misma ventana, escriba
sh prepareForSauceRealDevice.shosh prepareForSauceVirtualDevice.sh. Presione retorno/enter.
Ejecución de pruebas en dispositivos reales
Agregar configuración de Sauce Labs
Sauce Labs utiliza un archivo yaml, ubicado en la raíz del proyecto: .sauce/config.yml. Consulte la configuración de muestra a continuación para realizar pruebas en dispositivos reales.
apiVersion: v1alpha
kind: xcuitest
sauce:
region: us-west-1
concurrency: 1
xcuitest:
# file names for real devices have the `.ipa` extension
app: "<app_name>.ipa"
testApp: "<app_name>UITests-Runner.ipa"
suites:
- name: "<app_name>UITests"
devices:
- name: "iPhone.*"
platformVersion: "17.2"Configuración de la construcción
Desde la carpeta raíz de su proyecto en la Terminal, llame al siguiente comando para crear compilaciones de dispositivos sin necesidad de tener un dispositivo conectado a su computadora:
xcodebuild build-for-testing -configuration Debug \
-scheme "$APP_SCHEME" \
-target "$APP_UITEST_TARGET" \
-sdk iphoneos \
-derivedDataPath "./DerivedData"Este comando generará dos archivos de aplicación ubicados en ./DerivedData/Build/Products/Debug-iphoneos/: su aplicación iOS y sus pruebas de UI (que terminan en UITests-Runner).
A continuación, convierta ambos archivos de la aplicación en archivos .ipa . Siga las instrucciones de Sauce Labs para crear archivos .ipa.
Una vez creados los archivos, cree una carpeta .ipa apps ** en el directorio del proyecto y agregue ** ambos archivos .ipa a ella.
Ejecute el siguiente comando para enviar los archivos a Sauce Labs y comenzar a realizar pruebas: .ipa
saucectl run¿Está utilizando herramientas de integración continua adicionales? Sauce Labs admite pruebas dentro de su entorno actual. Obtenga más información sobre la integración con su canalización de CI y Sauce Labs.
Automatización
Una vez que haya confirmado que sus configuraciones están establecidas correctamente, ¡estará listo para automatizar este proceso! Hemos incluido un script a continuación para crear automáticamente archivos para dispositivos, cargarlos en Sauce Labs y ejecutar sus XCUITests. .ipa Su equipo también puede usar este script para invocar una ejecución de prueba en Sauce Labs manualmente.
APP_LOCATION="DerivedData/Build/Products/Debug-iphoneos"
APP_NAME="<app_name>"
rm -rf *.ipa
xcodebuild build-for-testing -configuration Debug \
-scheme "<scheme_name>" \
-target "<UITests target>" \
-sdk iphoneos \
-derivedDataPath "./DerivedData" \
-quiet
mkdir Payload
mv $APP_LOCATION/$APP_NAME.app Payload
zip -r -qq "$APP_NAME.ipa" Payload
rm -rf Payload/*
mv $APP_LOCATION/${APP_NAME}UITests-Runner.app Payload
zip -r -qq "${APP_NAME}UITests-Runner.ipa" Payload
saucectl run
rm -rf Payload
rm -rf DerivedDataEjecución de pruebas en dispositivos virtuales
¡Usted puede ejecutar pruebas automatizadas de XCUITest con Dispositivos Virtuales en Sauce Labs! Siga los pasos a continuación para comenzar.
Agregar configuración de Sauce Labs
Al realizar pruebas con simuladores, su configuración se ubicará en la raíz del proyecto, .sauce/config.yml. Si ya ha realizado pruebas con dispositivos reales antes, debe tener en cuenta que la configuración para simuladores es diferente de la configuración que utiliza para dispositivos reales. La extensión .zip se utiliza en los nombres de archivo para app y testApp, y suites enumera "simuladores" en lugar de "dispositivos".
apiVersion: v1alpha
kind: xcuitest
sauce:
region: us-west-1
concurrency: 1
xcuitest:
# file names for simulators use the `.zip` extension
app: "<app_name>.zip"
testApp: "<app_name>UITests-Runner.zip"
suites:
- name: "<app_name>UITests"
simulators:
- name: "iPhone 12 Simulator"
platformVersions:
- "16.2"Si desea usar tanto Dispositivos Reales como Simuladores, debe crear dos configuraciones de suites por separado y proporcionar la configuración de app y testApp para cada suite.
Configuración de la construcción
Deberá compilar la aplicación y el runner de pruebas específicamente para simuladores, usando el siguiente fragmento como guía. Si usted ha realizado pruebas con dispositivos reales antes, es posible que note algunas diferencias aquí: -sdk iphonesimulator, EXCLUDED_ARCHS="" y CODE_SIGN_IDENTITY...
xcodebuild build-for-testing -configuration Debug \
-scheme "$APP_SCHEME" \
-target "$APP_UITEST_TARGET" \
-sdk iphonesimulator \
-derivedDataPath "./DerivedData" \
EXCLUDED_ARCHS="" \
CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NOAhora, comprima los archivos .app para prepararlos para subirlos a Sauce Labs.
zip -r testApp.zip testApp.app
zip -r testRunner.zip testRunner.appPor último, ejecute el siguiente comando para subir sus archivos .zip y comenzar con las pruebas.
saucectl runAutomatización
Una vez que usted haya configurado la configuración para pruebas en simuladores, ¡podrá automatizar este proceso! Utilice el siguiente script para crear automáticamente archivos .app para simuladores, comprimirlos, cargarlos en Sauce Labs y ejecutar sus XCUITests.
APP_LOCATION="DerivedData/Build/Products/Debug-iphonesimulator"
APP_NAME="<app_name>"
RUNNER_NAME="<testApp_name>"
rm -rf $APP_NAME.zip $RUNNER_NAME.zip
xcodebuild build-for-testing -configuration Debug \
-scheme "<scheme_name>" \
-target "<UITests target>" \
-sdk iphonesimulator \
-derivedDataPath "./DerivedData" \
-quiet \
EXCLUDED_ARCHS="" \
CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO
zip -r -qq $APP_NAME.zip $APP_LOCATION/$APP_NAME.app
zip -r -qq $RUNNER_NAME.zip $APP_LOCATION/$RUNNER_NAME.app
saucectl run
rm -rf DerivedData