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

Mit axe DevTools Mobile können Sie Zugänglichkeitsprobleme bei Ihren UI-Tests finden. Integrieren Sie Ihren Test mit Sauce Labs und erhalten Sie Einblicke in die Nutzererfahrung Ihrer App – noch bevor die Nutzer sie überhaupt gesehen haben! Sauce Labs ist die größte cloudbasierte Testplattform und bietet verschiedene Geräte- und Simulatorkonfigurationen, damit Sie Vertrauen in Ihre digitalen Abläufe gewinnen. Konfigurieren Sie Ihre Tests so, dass sie im Rahmen Ihrer aktuellen Build-Automatisierung auf Sauce ausgeführt werden, damit Fehler erkannt werden, bevor sie in die Produktion gelangen.

Nachfolgend finden Sie eine Anleitung zum Ausführen Ihrer UI-Tests mit axe DevTools Mobile und Sauce Labs.

Voraussetzungen

  1. Bereiten Sie Ihre App für die Verteilung vor. Da die Tests bei Sauce Labs mit echten Geräten durchgeführt werden, sorgt die Bereitstellung der App- und UITest-Ziele vor dem Senden an den Dienst zur erneuten Signierung für einen reibungsloseren Ablauf.
  2. Installieren Sie die saucectl Befehlszeilenschnittstelle und richten Sie Ihre Sauce Labs-Anmeldeinformationen ein. Befolgen Sie die Anweisungen von Sauce Labs.
tip

Suchen Sie ein Beispiel? Unser iOS-Beispielprojekt verfügt über eine testbereite Integration.

  1. Überprüfen Sie, ob Sie die Voraussetzungen erfüllen.
  2. Laden Sie das [Beispielprojekt von Github] herunter(https://github.com/dequelabs/axe-devtools-ios-sample-app)
  3. Öffnen Sie ein Terminalfenster, geben Sie cd ein und ziehen Sie dann axe-devtools-ios-sample-app per Drag & Drop aus dem Finder in das Terminalfenster. Drücken Sie die Eingabetaste.
  4. Geben Sie im selben Fenster sh prepareForSauceRealDevice.sh ODER sh prepareForSauceVirtualDevice.sh ein. Drücken Sie die Eingabetaste.

Tests auf realen Geräten durchführen

Sauce Labs Konfiguration hinzufügen

Sauce Labs verwendet eine yaml-Datei, die sich im Projektverzeichnis .sauce/config.yml befindet. Nachfolgend finden Sie eine Beispielkonfiguration für Tests auf realen Geräten.

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"

Build-Setup

Rufen Sie aus dem Stammordner Ihres Projekts im Terminal den folgenden Befehl auf, um Geräte-Builds zu erstellen, ohne dass ein Gerät an Ihren Computer angeschlossen sein muss:

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

Dieser Befehl generiert zwei App-Dateien, die sich an folgendem Ort befinden: ./DerivedData/Build/Products/Debug-iphoneos/Ihre iOS-Anwendung und Ihre UI-Tests (mit der Endung UITests-Runner).

Konvertieren Sie anschließend beide Anwendungsdateien in .ipa Dateien. Befolgen Sie die Anweisungen von Sauce Labs zur Erstellung von .ipa-Dateien.

Sobald die .ipa Dateien erstellt sind, erstellen Sie einen apps ordner im Projektverzeichnis und fügen Sie beide .ipa Dateien hinzu.

Führen Sie den folgenden Befehl aus, um die .ipa Dateien an Sauce Labs zu übertragen und mit dem Testen zu beginnen:

saucectl run
note

Verwenden Sie zusätzliche Tools zur kontinuierlichen Integration? Sauce Labs unterstützt Tests in Ihrer aktuellen Umgebung. Erfahren Sie mehr über die Integration mit Ihrer CI-Pipeline und Sauce Labs.

Automatisierung

Sobald Sie bestätigt haben, dass Ihre Konfigurationen richtig eingerichtet sind, können Sie diesen Prozess automatisieren! Wir haben unten ein Skript eingefügt, um automatisch .ipa Dateien für Geräte zu erstellen, sie in Sauce Labs hochzuladen und Ihre XCUITests auszuführen. Ihr Team kann dieses Skript auch verwenden, um manuell einen Testlauf auf Sauce Labs aufzurufen.

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

Tests auf virtuellen Geräten ausführen

Sie können automatisierte XCUITest-Tests mit virtuellen Geräten auf Sauce Labs ausführen. Folgen Sie den nachstehenden Schritten, um zu beginnen.

Sauce Labs Konfiguration hinzufügen

Wenn Sie mit Simulatoren testen, befindet sich Ihre Konfiguration im Projektverzeichnis, .sauce/config.yml. Wenn Sie zuvor Tests mit realen Geräten durchgeführt haben, sollten Sie beachten, dass sich die Konfiguration für Simulatoren von der Konfiguration für reale Geräte unterscheidet. Die Dateiendung .zip wird in den Dateinamen von app und testApp verwendet, und suites listet 'Simulatoren' anstelle von 'Geräten' auf.

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

Wenn Sie sowohl mit echten Geräten als auch mit Simulatoren arbeiten möchten, sollten Sie zwei separate suites-Konfigurationen anlegen und für app und testApp jeweils eine Konfiguration für jede Suite bereitstellen.

Build-Setup

Sie werden die App und den Test-Runner speziell für Simulatoren erstellen und dabei den unten stehenden Codeausschnitt als Anleitung verwenden. Falls Sie zuvor Tests mit echten Geräten durchgeführt haben, werden Sie hier möglicherweise einige Unterschiede feststellen – -sdk iphonesimulator, EXCLUDED_ARCHS="" und 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

Zippen Sie nun die .app-Dateien, um sie für den Upload zu Sauce Labs vorzubereiten.

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

Führen Sie abschließend den folgenden Befehl aus, um Ihre .zip-Dateien hochzuladen und mit dem Testen zu beginnen.

  saucectl run

Automatisierung

Sobald Sie die Konfiguration für Tests auf Simulatoren eingerichtet haben, können Sie diesen Prozess automatisieren! Verwenden Sie das untenstehende Skript, um .app-Dateien für Simulatoren automatisch zu erstellen, sie zu zippen, auf Sauce Labs hochzuladen und Ihre XCUITests auszuführen.

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