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

Utilizzando axe DevTools Mobile, puoi trovare problemi di accessibilità nei test dell'interfaccia utente. Integra i tuoi test con Sauce Labs e scopri di più sull'esperienza del pubblico con la tua app, prima ancora che la vedano! Sauce Labs è la più grande piattaforma di test basata su cloud, che ospita varie configurazioni di dispositivi e simulatori per accrescere la Sua sicurezza digitale. Configura i test per essere eseguiti su Sauce nella tua attuale automazione di build, così da rilevare i problemi prima che arrivino in produzione.

Di seguito è riportata una guida per eseguire test dell'interfaccia utente integrati con axe DevTools Mobile e Sauce Labs.

Prerequisiti

  1. Prepara la tua app per la distribuzione. Poiché i test su Sauce Labs vengono eseguiti su dispositivi reali, disporre dell'app e dei target UITest predisposti prima di inviarli al servizio per la ri-firma renderà il processo più fluido.
  2. Installa l'interfaccia della riga di comando saucectl e configura le tue credenziali Sauce Labs. Seguire le istruzioni di Sauce Labs.
tip

Cerchi un esempio? Il nostro progetto iOS di esempio ha un'integrazione pronta per essere testata.

  1. Verifica di possedere i prerequisiti.
  2. Scarica il progetto di esempio da Github
  3. Apri una finestra del Terminale, digita cd , quindi trascina e rilascia axe-devtools-ios-sample-app dal Finder nella finestra del Terminale. Premi invio.
  4. Nella stessa finestra, digita sh prepareForSauceRealDevice.sh OPPURE sh prepareForSauceVirtualDevice.sh. Premi invio.

Test su dispositivi reali

Aggiungi la configurazione di Sauce Labs

Sauce Labs utilizza un file yaml situato nella radice del progetto, .sauce/config.yml. Consulti la configurazione di esempio riportata di seguito per i test su dispositivi reali.

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"

Impostazione della Build

Dalla cartella principale del progetto nel Terminale, chiama il seguente comando per creare build di dispositivi senza dover avere un dispositivo collegato al computer:

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

Questo comando genererà due file app che si trovano in ./DerivedData/Build/Products/Debug-iphoneos/: la tua applicazione iOS e i tuoi test dell'interfaccia utente (che terminano con UITests-Runner).

Quindi, convertire in file entrambi i file dell'applicazione. .ipa Segua le istruzioni di Sauce Labs per la creazione dei file .ipa.

Una volta creati i file .ipa, crea una cartella apps nella directory del progetto e aggiungervi entrambi i file .ipa.

Esegui il seguente comando per inviare i file .ipa a Sauce Labs e iniziare i test:

saucectl run
note

Stai utilizzando ulteriori strumenti di integrazione continua? Sauce Labs supporta i test nel tuo ambiente attuale. Scopri di più sull'integrazione con la tua pipeline CI e Sauce Labs .

Automazione

Una volta verificato che le configurazioni siano state impostate correttamente, sei pronto per automatizzare questo processo! Di seguito abbiamo incluso uno script per creare automaticamente file per i dispositivi, caricarli su Sauce Labs ed eseguire i test XCUITests. .ipa Il tuo team può anche utilizzare questo script per richiamare manualmente un'esecuzione di test su 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

Esecuzione di test su dispositivi virtuali

Lei può eseguire test XCUITest automatizzati con Virtual Devices su Sauce Labs! Per iniziare, segua i passaggi indicati di seguito.

Aggiungi la configurazione di Sauce Labs

Quando effettua il test con i simulatori, la configurazione si troverà nella radice del progetto, .sauce/config.yml. Se Lei ha già effettuato test con dispositivi reali, dovrebbe notare che la configurazione per i simulatori è diversa da quella utilizzata per i dispositivi reali. L'estensione .zip viene utilizzata nei nomi dei file per app e testApp, e suites elenca 'simulatori' invece di 'dispositivi'.

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 desidera utilizzare sia Dispositivi reali che Simulatori, dovrebbe creare due configurazioni suites separate e fornire app la configurazione e testApp configurazione per ogni suite.

Impostazione della Build

Compili l'app e il test runner appositamente per i simulatori, utilizzando il frammento di codice qui sotto come guida. Se Lei ha già eseguito dei test con Real Devices, potrebbe notare alcune differenze qui: -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

Ora, comprima i file .app per prepararli per il caricamento su Sauce Labs.

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

Infine, esegua il seguente comando per caricare i suoi file .zip e avviare i test.

  saucectl run

Automazione

Una volta impostata la configurazione per i test sui simulatori, Lei potrà automatizzare questo processo! Utilizzi lo script qui sotto per creare automaticamente i file .app per i simulatori, comprimerli in un archivio zip, caricarli su Sauce Labs e avviare i Suoi 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