Sauce Labs XCUITest-Beispiel
Geben Sie Ihrem Team die Möglichkeit, sich auf die Identifizierung und Lösung von Zugänglichkeitsproblemen auf echten Geräten von Sauce Labs zu konzentrieren.
Mit axe DevTools Mobile können Sie Zugänglichkeitsprobleme bei Ihren UI-Tests finden. Integrieren Sie Ihren Test in Sauce Labs und erhalten Sie Einblicke in die Erfahrungen Ihrer Nutzer mit Ihrer App – bevor sie diese überhaupt gesehen haben! Für Ihr Team entsteht dadurch kein zusätzlicher Aufwand. Sauce Labs ist die größte Cloud-basierte Testplattform, die verschiedene Geräte- und Emulatorkonfigurationen hostet, um Ihr digitales Vertrauen aufzubauen. Konfigurieren Sie Ihre Tests so, dass sie innerhalb Ihrer aktuellen Build-Automatisierung auf Sauce Labs ausgeführt werden, um Probleme zu erkennen, bevor sie die Produktion erreichen.
Nachfolgend finden Sie eine Anleitung zum Ausführen Ihrer UI-Tests mit axe DevTools Mobile und Sauce Labs.
Voraussetzungen
- Ihre UITests sind in axe DevTools Mobile für iOS integriert. Sehen Sie sich unsere Anleitung für die ersten Schritte an, falls nötig.
- 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.
- Installieren Sie die
saucectl
Befehlszeilenschnittstelle und richten Sie Ihre Sauce Labs-Anmeldeinformationen ein. Befolgen Sie die Anweisungen von Sauce Labs.
Suchen Sie ein Beispiel? Unser iOS-Beispielprojekt verfügt über eine testbereite Integration.
- Überprüfen Sie, ob Sie die Voraussetzungen erfüllen.
- Laden Sie das herunter Beispielprojekt von Github
- Öffnen Sie ein Terminalfenster, geben Sie
cd
ein und ziehen Sie dannaxe-devtools-ios-sample-app
per Drag & Drop aus dem Finder in das Terminalfenster. Drücken Sie die Eingabetaste. - Geben Sie im selben Fenster ein
sh prepareForSauce.sh
. Drücken Sie die Eingabetaste.
Sauce Labs Konfiguration hinzufügen
Sauce Labs verwendet eine yaml
Datei im Projektstammverzeichnis unter .sauce/config.yml
. Siehe die Beispielkonfigurationsdatei unten:
apiVersion: v1alpha
kind: xcuitest
sauce:
region: us-west-1
concurrency: 1
xcuitest:
app: "<app_name>.ipa"
testApp: "<app_name>UITests-Runner.ipa"
suites:
- name: "<app_name>UITests"
devices:
- name: "iPhone.*"
platformVersion: "17.2"
Build-Setup
Sauce Labs unterstützt nur Tests auf „echten Geräten“ mit XCUITests. Lesen Sie mehr über die Integration von Sauce Labs mit XCUI.
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 zum Erstellen 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
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