Sauce Labs con XCUITest

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

Usando Axe DevTools Mobile, puedes encontrar problemas de accesibilidad con tus pruebas de UI. Integra tu prueba con Sauce Labs y obtén información sobre la experiencia de los usuarios de tu aplicación, ¡incluso antes de que la hayan visto! Sauce Labs es la plataforma de pruebas basadas en la nube más grande, alojando varias configuraciones de dispositivos y simuladores para fortalecer tu confianza digital. Configura tus pruebas para ejecutarlas en Sauce dentro de tu automatización de compilación actual para detectar problemas antes de que lleguen a producción.

A continuación se presenta una guía para ejecutar tus pruebas de UI integradas con Axe DevTools Mobile y Sauce Labs.

Requisitos previos

  1. Prepara tu aplicación para su distribución. Dado que las pruebas en Sauce Labs se realizan con dispositivos reales, tener la aplicación y las UItargets provistos antes de enviarlos a su servicio para ser firmados nuevamente resultará en un proceso más fluido.
  2. Instala la saucectl interfaz de línea de comandos y configura tus credenciales de Sauce Labs. Sigue las instrucciones de Sauce Labs.
tip

¿Buscas un ejemplo? Nuestro Proyecto de iOS de Muestra tiene una integración lista para probar.

  1. Verifica que cumplas con los requisitos previos.
  2. Descarga el proyecto de muestra de Github
  3. Abre una ventana de Terminal, ingresa cd y luego arrastra y suelta el axe-devtools-ios-sample-app desde Finder a la ventana del Terminal. Presiona return/enter.
  4. En la misma ventana, escribe sh prepareForSauceRealDevice.sh O sh prepareForSauceVirtualDevice.sh. Presiona return/enter.

Ejecutando 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. Consulta la configuración de ejemplo a continuación para probar 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 Compilación

Desde la carpeta raíz de tu proyecto en el Terminal, ejecuta el siguiente comando para crear compilaciones de dispositivos sin necesidad de tener un dispositivo conectado a tu 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/: Tu aplicación iOS y tus pruebas de UI (que terminan en UITests-Runner).

A continuación, convierte ambos archivos de aplicación a .ipa archivos. Sigue las instrucciones de Sauce Labs para crear .ipa archivos.

Una vez que se crean los archivos .ipa, crea una carpeta aplicaciones en el directorio del proyecto y añade ambos archivos .ipa a ella.

Ejecuta el siguiente comando para enviar los archivos .ipa a Sauce Labs y comenzar las pruebas:

saucectl run
note

¿Usas herramientas adicionales de integración continua? Sauce Labs admite pruebas dentro de tu entorno actual. Aprende más sobre la integración con tu pipeline de CI y Sauce Labs.

Automatización

¡Una vez que hayas confirmado que tus configuraciones están correctamente configuradas, estás listo para automatizar este proceso! A continuación hemos incluido un script para construir automáticamente archivos .ipa para dispositivos, cargarlos en Sauce Labs y ejecutar tus XCUITests. Tu 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 DerivedData

Ejecutando Pruebas en Dispositivos Virtuales

¡Puedes ejecutar pruebas automatizadas de XCUITest con Dispositivos Virtuales en Sauce Labs! Sigue los pasos a continuación para empezar.

Agregar Configuración de Sauce Labs

Al probar con simuladores, tu configuración estará ubicada en la raíz del proyecto, .sauce/config.yml. Si has hecho pruebas con dispositivos reales antes, debes notar que la configuración para simuladores es diferente de la configuración que usas para dispositivos reales. La extensión .zip se utiliza en los nombres de archivo para app y testApp, y suites lista '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"
note

Si deseas utilizar tanto Dispositivos Reales como Simuladores, deberías crear dos suites configuraciones separadas y proporcionar app y testApp configuración para each suite.

Configuración de la Compilación

Vas a construir la app y el runner de pruebas específicamente para simuladores, usando el fragmento a continuación como tu guía. Si has hecho pruebas con Dispositivos Reales antes, podrás notar 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=NO

Ahora, comprime los archivos .app para prepararlos para subir a Sauce Labs.

  zip -r testApp.zip testApp.app
  zip -r testRunner.zip testRunner.app

Finalmente, ejecuta el siguiente comando para subir tus archivos .zip y comenzar las pruebas.

  saucectl run

Automatización

¡Una vez que hayas configurado la configuración para probar en simuladores, podrás automatizar este proceso! Usa el script a continuación para construir automáticamente archivos .app para simuladores, comprimirlos, cargarlos en Sauce Labs y ejecutar tus 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