Sauce Labs com 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

Com o axe DevTools Mobile, você pode encontrar problemas de acessibilidade com seus testes de interface do usuário. Integre seu teste com o Sauce Labs e obtenha insights sobre a experiência do público com seu aplicativo - antes mesmo que eles o tenham visto! O Sauce Labs é a maior plataforma de teste baseada em nuvem, hospedando várias configurações de dispositivos e simuladores para construir sua confiança digital. Configure seus testes para rodar no Sauce dentro da sua automação de build atual, para capturar problemas antes que eles cheguem à produção.

Abaixo está um guia para executar seus testes de interface do usuário integrados com axe DevTools Mobile e Sauce Labs.

Pré-requisitos

  1. Prepare seu aplicativo para distribuição. Como o teste no Sauce Labs é realizado com dispositivos reais, ter o aplicativo e as metas UITest provisionadas antes de enviá-lo para o serviço deles para ser assinado novamente resultará em um processo mais suave.
  2. Instale a interface de linha de comando saucectl e configure suas credenciais do Sauce Labs. Siga as instruções do Sauce Labs.
tip

Procurando um exemplo? Nosso Projeto iOS de Exemplo já tem uma integração pronta para testar.

  1. Verifique se você tem os pré-requisitos.
  2. Baixe o projeto de exemplo do Github
  3. Abra uma janela do Terminal, insira cd , e então arraste e solte o axe-devtools-ios-sample-app do Finder na janela do Terminal. Pressione return/enter.
  4. Na mesma janela, digite sh prepareForSauceRealDevice.sh OU sh prepareForSauceVirtualDevice.sh. Pressione return/enter.

Executando Testes em Dispositivos Reais

Adicionar Configuração do Sauce Labs

O Sauce Labs usa um arquivo yaml , localizado na raiz do projeto, .sauce/config.yml. Veja a configuração de exemplo abaixo para testes em dispositivos reais.

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"

Configuração de Build

A partir da pasta raiz do seu projeto no Terminal, execute o seguinte comando para criar builds de dispositivos sem precisar ter um dispositivo conectado ao seu computador:

xcodebuild build-for-testing -configuration Debug \
                             -scheme "$APP_SCHEME" \
                             -target "$APP_UITEST_TARGET" \
                             -sdk iphoneos \
                             -derivedDataPath "./DerivedData"

Este comando gerará dois arquivos de aplicativo localizados em ./DerivedData/Build/Products/Debug-iphoneos/: Seu aplicativo iOS e seus testes de interface do usuário (terminando em UITests-Runner).

Em seguida, converta ambos os arquivos de aplicativo para arquivos .ipa . Siga as instruções do Sauce Labs sobre a criação de .ipa arquivos.

Uma vez que os arquivos .ipa são criados, crie uma pasta apps no diretório do projeto e adicione ambos os arquivos .ipa a ela.

Execute o seguinte comando para enviar os arquivos .ipa para o Sauce Labs e começar os testes:

saucectl run
note

Você está usando ferramentas adicionais de integração contínua? O Sauce Labs suporta testes dentro do seu ambiente atual. Saiba mais sobre a integração com seu pipeline de CI e Sauce Labs.

Automação

Depois de confirmar que suas configurações estão corretas, você está pronto para automatizar este processo! Incluímos um script abaixo para criar automaticamente arquivos .ipa para dispositivos, fazer o upload para o Sauce Labs e executar seus XCUITests. Sua equipe também pode usar este script para invocar uma execução de teste no 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

Executando Testes em Dispositivos Virtuais

Você pode executar testes automatizados XCUITest com Dispositivos Virtuais no Sauce Labs! Siga os passos abaixo para começar.

Adicionar Configuração do Sauce Labs

Ao testar com simuladores, sua configuração estará localizada na raiz do projeto, .sauce/config.yml. Se você já realizou testes com dispositivos reais antes, deve observar que a configuração para simuladores é diferente da configuração que você usa para dispositivos reais. A .zip extensão é usada nos nomes dos arquivos para app e testApp, e suites lista 'simulators' em vez de 'devices'.

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

Se você quiser usar tanto Dispositivos Reais quanto Simuladores, deve criar duas suites configurações separadas e fornecer app e testApp configuração para each suite.

Configuração de Build

Você irá criar o aplicativo e o executador de testes especificamente para simuladores, utilizando o trecho abaixo como seu guia. Se você já realizou testes com Dispositivos Reais antes, pode notar algumas diferenças aqui - -sdk iphonesimulator, EXCLUDED_ARCHS="", e 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

Agora, compacte os arquivos .app para prepará-los para upload no Sauce Labs.

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

Finalmente, execute o seguinte comando para fazer upload dos seus arquivos .zip e iniciar os testes.

  saucectl run

Automação

Depois de configurar a testagem em simuladores, você poderá automatizar esse processo! Utilize o script abaixo para construir automaticamente .app arquivos para simuladores, compactá-los, fazer upload para o Sauce Labs e executar seus 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