Esempio di Sauce Labs XCUITest
Consenti al tuo team di concentrarsi sull'identificazione e sulla risoluzione dei problemi di accessibilità sui dispositivi reali di Sauce Labs.
Utilizzando axe DevTools Mobile, puoi trovare problemi di accessibilità nei test dell'interfaccia utente. Integra il tuo test con Sauce Labs e ottieni informazioni sull'esperienza del tuo pubblico con la tua app, prima ancora che l'abbiano vista! Ciò non comporta sforzi aggiuntivi da parte del tuo team. Sauce Labs è la più grande piattaforma di test basata su cloud, che ospita varie configurazioni di dispositivi ed emulatori per aumentare la tua sicurezza digitale. Configura i tuoi test in modo che vengano eseguiti su Sauce all'interno della tua attuale automazione di build per individuare i problemi prima che raggiungano la produzione.
Di seguito è riportata una guida per eseguire test dell'interfaccia utente integrati con axe DevTools Mobile e Sauce Labs.
Prerequisiti
- I tuoi UITest sono integrati con axe DevTools Mobile per iOS. Se necessario, consulta la nostra guida introduttiva .
- 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.
- Installa l'interfaccia della riga di comando
saucectl
e configura le tue credenziali Sauce Labs. Seguire le istruzioni di Sauce Labs.
Cerchi un esempio? Il nostro progetto iOS di esempio ha un'integrazione pronta per essere testata.
- Verifica di possedere i prerequisiti.
- Scarica il progetto di esempio da Github
- Apri una finestra del Terminale, digita
cd
, quindi trascina e rilasciaaxe-devtools-ios-sample-app
dal Finder nella finestra del Terminale. Premi invio. - Nella stessa finestra, digita
sh prepareForSauce.sh
. Premi invio.
Aggiungi la configurazione di Sauce Labs
Sauce Labs utilizza un file che si trova nella radice del progetto in yaml
. .sauce/config.yml
Di seguito è riportato il file di configurazione di esempio:
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"
Impostazione della Build
Sauce Labs supporta i test solo su "dispositivi reali" con XCUITests. Scopri di più sull' integrazione di Sauce Labs con XCUI.
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
Seguire le istruzioni di Sauce Labs per creare 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
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 .ipa
per i dispositivi, caricarli su Sauce Labs ed eseguire i test XCUITests. 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