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

Usando o Axe DevTools Mobile, você pode encontrar problemas de acessibilidade com seus testes de UI. Integre seu teste com o Sauce Labs e obtenha insights sobre a experiência do público em seu aplicativo - antes mesmo de eles o verem! O Sauce Labs é a maior plataforma de testes baseada em nuvem, hospedando várias configurações de dispositivos e simuladores para aumentar sua confiança digital. Configure seus testes para serem executados no Sauce dentro da sua automação de build atual, para detectar problemas antes que eles cheguem à produção.

Abaixo está um guia para executar seus testes de UI 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 Github
  3. Abra uma janela do Terminal, digite cd e 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 testar 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 irá gerar dois arquivos de aplicativo localizados em ./DerivedData/Build/Products/Debug-iphoneos/: seu aplicativo iOS e seus testes de UI (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.

Assim que os arquivos .ipa forem criados, crie uma pasta apps no diretório do projeto e adicione a ela ambos os arquivos .ipa.

Execute o seguinte comando para enviar os arquivos .ipa para o Sauce Labs e iniciar 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

Uma vez que você tenha confirmado que suas configurações estão corretas, você está pronto para automatizar esse processo! Incluímos um script abaixo para construir automaticamente os arquivos .ipa para dispositivos, enviá-los para o Sauce Labs e executar seus XCUITests. Sua equipe também pode usar este script para iniciar manualmente uma execução de teste no Sauce Labs.

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 notar que a configuração para simuladores é diferente da configuração que você usa para dispositivos reais. A extensão .zip é usada nos nomes de arquivo para app e testApp, e suites lista 'simuladores' em vez 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

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á construir o aplicativo e o executor de testes especificamente para simuladores, usando o trecho a seguir como seu guia. Se você já fez 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 preparar o upload para o Sauce Labs.

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

Finalmente, execute o seguinte comando para enviar seus arquivos .zip e começar os testes.

  saucectl run

Automação

Depois de configurar a configuração para testes em simuladores, você poderá automatizar esse processo! Use o script abaixo para construir automaticamente os arquivos .app para simuladores, compactá-los, enviá-los 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