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

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

  1. 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.
  2. Instale la interfaz de línea de comandos saucectl y configure sus credenciales de Sauce Labs. Siga las instrucciones de Sauce Labs.
tip

¿Busca un ejemplo? Nuestro proyecto iOS de muestra tiene una integración lista para probar.

  1. Verifique que tenga los prerrequisitos.
  2. Descargue el proyecto de muestra de Github
  3. Abra una ventana de Terminal, ingrese cd y luego arrastre y suelte axe-devtools-ios-sample-app desde el Finder a la ventana de Terminal. Presione retorno/enter.
  4. En la misma ventana, escriba sh prepareForSauceRealDevice.sh o sh 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
note

¿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 DerivedData

Ejecució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"
note

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=NO

Ahora, comprima los archivos .app para prepararlos para subirlos a Sauce Labs.

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

Por último, ejecute el siguiente comando para subir sus archivos .zip y comenzar con las pruebas.

  saucectl run

Automatizació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