Exemple de Sauce Labs XCUITest
Donnez à votre équipe les moyens de s `.ipa`e concentrer sur l'identification et la résolution des problèmes d'accessibilité sur les appareils réels de Sauce Labs.
En utilisant axe DevTools Mobile, vous pouvez trouver des problèmes d'accessibilité avec vos tests d'interface utilisateur. Intégrez votre test à Sauce Labs et obtenez un aperçu de l'expérience de votre public avec votre application, avant même qu'ils ne l'aient vue ! Cela n’implique pas d’effort supplémentaire de la part de votre équipe. Sauce Labs est la plus grande plate-forme de test basée sur le cloud, hébergeant diverses configurations d'appareils et d'émulateurs pour renforcer votre confiance numérique. Configurez vos tests pour qu'ils s'exécutent sur Sauce dans votre automatisation de build actuelle afin de détecter les problèmes avant qu'ils n'atteignent la production.
Vous trouverez ci-dessous un guide pour exécuter vos tests d'interface utilisateur intégrés à axe DevTools Mobile et Sauce Labs.
Prérequis
- Vos UITests sont intégrés à axe DevTools Mobile pour iOS. Consultez notre guide de démarrage si nécessaire.
- Préparez votre application pour la distribution. Étant donné que les tests sur Sauce Labs sont effectués avec des appareils réels, le fait de provisionner l'application et les cibles UITest avant de les envoyer à leur service pour qu'elles soient re-signées entraînera un processus plus fluide.
- Installez l'interface de ligne de commande et configurez vos informations d'identification Sauce Labs.
saucectl
Suivez les instructions de Sauce Labs.
Vous cherchez un exemple ? Notre exemple de projet iOS dispose d'une intégration prête à être testée.
- Vérifiez que vous avez les prérequis.
- Téléchargez le projet d'exemple depuis Github
- Ouvrez une fenêtre Terminal, entrez
cd
, puis faites glisser et déposez le fichier du Finder dans la fenêtre Terminal.axe-devtools-ios-sample-app
Appuyez sur retour/entrée. - Dans la même fenêtre, tapez
sh prepareForSauce.sh
. Appuyez sur retour/entrée.
Ajouter la configuration de Sauce Labs
Sauce Labs utilise un yaml
fichier à la racine du projet situé à .sauce/config.yml
. Voir l'exemple de fichier de configuration ci-dessous :
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"
Configuration de la compilation
Sauce Labs prend uniquement en charge les tests sur des « appareils réels » avec XCUITests. En savoir plus sur l'intégration de Sauce Labs avec XCUI.
Depuis le dossier racine de votre projet dans le Terminal, appelez la commande suivante pour créer des builds de périphériques sans avoir besoin d'avoir un périphérique branché sur votre ordinateur :
xcodebuild build-for-testing -configuration Debug \
-scheme "$APP_SCHEME" \
-target "$APP_UITEST_TARGET" \
-sdk iphoneos \
-derivedDataPath "./DerivedData"
Cette commande générera deux fichiers d'application situés à ./DerivedData/Build/Products/Debug-iphoneos/
: votre application iOS et vos tests d'interface utilisateur (se terminant par UITests-Runner
).
Ensuite, convertissez les deux fichiers d’application en fichiers .ipa
. Suivez les instructions de Sauce Labs pour créer des fichiers IPA.
Une fois les .ipa
fichiers créés, créez un dossier apps dans le répertoire du projet et y ajouter les deux .ipa
fichiers.
Exécutez la commande suivante pour envoyer les fichiers à Sauce Labs et commencer les tests :
saucectl run
Utilisez-vous des outils d’intégration continue supplémentaires ? Sauce Labs prend en charge les tests dans votre environnement actuel. En savoir plus sur l'intégration avec votre pipeline CI et Sauce Labs.
Automatisation
Une fois que vous avez confirmé que vos configurations sont correctement configurées, vous êtes prêt à automatiser ce processus ! Nous avons inclus un script ci-dessous pour créer automatiquement des .ipa
fichiers pour les appareils, les télécharger sur Sauce Labs et exécuter vos XCUITests. Votre équipe peut également utiliser ce script pour lancer manuellement un test sur 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