Le TestRunner a besoin de fichiers de travail et de fichiers de configuration pour exécuter les tests. Ils se trouvent dans la section Modules/Testrunner/Template de Greenspector App.
Règles de style :
Gras : paramètres contenant une valeur
Italique : pas de libre choix de valeur (ex : false/true)
1 - Job.yml
Le fichier job.yml donne les instructions au TestRunner sur les détails du parcours (variables, itérations).
Ici, il y a le modèle de fichier pour le test iOS disponible dans la section Modules/Testrunner/Job pour iOS dans l'application Greenspector.
Les différentes lignes de code sont expliquées ci-dessous.
mode: custom greenspector: application: name: ${APP_NAME} # Le nom de votre application version: ${APP_VERSION} # La version de votre application
mode:
custom: tester avec le script GDSL
app: benchmark à partir d’un APK (ex: com.google.ios.youtube)
url: benchmark à partir d’une URL (ex: https://metropole.nantes.fr)
greenspector/application
name : le nom de l'application Greenspector App
version : le nom de la version
job: # Liste de tous les apk obligatoires à installer sur le téléphone avant le lancement du test # L'URL peut être le nom du paquet à installer depuis le Playstore, le chemin local d'une apk ou l'URL publique d'une apk # urls: # - ${URL} testsSuites: - name: suite1 testFiles: - "./script.testgb" monitoredPackages: - ${MONITORED_PACKAGE} # Le package à surveiller, existant ou nouvellement installé iterations: 1 # Nombre d'itérations pour chaque cas de test extras: config-screenbrightness: "127" config-skipsetupphone: "true" PAUSEDURATION: "${PAUSEDURATION}" PAUSEAFTERLOAD: "${PAUSEAFTERLOAD}" testTimeout: 30m0s # Délai d'attente pour la durée totale du test, la valeur par défaut est de 30 m, la valeur maximale est de 60 m. online: true # [true, false] networkMode: WIFI modules: hardware_probe: false tcpdump: false
testsSuites
name: le nom de l’application
testFiles: le chemin du fichier du parcours fonctionnel
monitoredPackages: app package
→ Avec IOS, ce champs n’est utilisé que pour l’APK de référence afin d’ouvrir l’application.
iterations: Nombre d’itérations pour chaque cas de test
extras :
PAUSEDURATION
PAUSEAFTERLOAD
→ Avec IOS, le champs extras n’est utilisé que pour les variables.
testTimeout: Délai d'attente pour la durée totale du test, la valeur par défaut est de 30 m, la valeur maximale est de 60 m.
online:
false : résultats disponibles sur votre PC
true : résultats disponibles sur l'application Greenspector et localement
→ With IOS, the networkMode field is not used
modules
hardware_probe: “false” (utilisation du module matériel pour obtenir la consommation d'énergie)
tcpdump: “false” (utilisation du module tcpdump pour obtenir les données échangées)
Des extras peuvent être ajoutés :
PAUSEAFTERACTION: 500
PAUSEAFTERSCROLL: 500
Variables nécessaires (id, mot de passe, ...)
Example
# Fichier de configuration du Testrunner mode: custom greenspector: application: name: LeMonde version: "automatisation" job: # Custom job android apk testsSuites: - name: "LeMonde" testFiles: - ios.testgb iterations: 1 testTimeout: 60m0s online: false modules: hardware_probe: false tcpdump: false extras: PAUSEDURATION: 2000 PAUSEAFTERLOAD : 1000 PAUSEAFTERACTION: 500 PAUSEAFTERSCROLL: 500 ID: jean PSWD: 5678
2 - Config.yml
Le fichier config.yml fournira au testrunner les informations relatives à l'appareil et à la connexion au serveur.
Ici, il y a le modèle de fichier pour le test iOS disponible dans la section Modules/Testrunner/Config pour iOS dans l'application Greenspector.
Les différentes lignes de code sont expliquées ci-dessous.
platform: ios # La plateforme sur laquelle vous testez [mobile | pc] resultPath: ./greenspector # Le chemin où vous voulez que le Testrunner enregistre les résultats des tests. La valeur par défaut est ./greenspector/measures target: # bloc cible pour le mode iOS ip: ${PHONE_IP} udid: ${PHONE_UDID} name: ${PHONE_NAME} lang: ${PHONE_LANGUAGE} paths: webDriverAgent: /usr/local/lib/node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj # Chemin complet vers WebDriverAgent xcodeproject ios-deploy: /usr/local/bin/ios-deploy # Chemin d'accès à ios-deploy. Laissez ce champ vide si ios-deploy se trouve dans votre PATH. greenspector: server: ${GREENSPECTOR_CORE_SERVER_URL} # URL de votre instance Greenspector token: ${PRIVATE_TOKEN} # Votre token privé enregistré sur Greenspector
plateform: La plateforme sur laquelle vous testez (ios)
resultPath: Le chemin où le Testrunner enregistre les résultats des tests. La valeur par défaut est ./greenspector/measures.
ip: adresse IP de l’iPhone
udid: Identifiant unique de l'iPhone (vous pouvez le trouver dans Xcode > Window > Devices and Simulators)
name: Nom de l'iPhone (vous pouvez le trouver dans Xcode > Window > Devices and Simulators)
lang: “en” pour l’anglais, “fr” pour le français
paths
webDriverAgent: Chemin complet vers WebDriverAgent xcodeproject
ios-deploy: Chemin d'accès à ios-deploy. Laissez ce champ vide si ios-deploy se trouve dans votre PATH.
greenspector/server: URL de l'instance Greenspector(https://app.greenspector.com)
greenspector/token: Token privé enregistré sur Greenspector dans Profil/Préférences
Des paramètres peuvent être ajoutés :
log-level: Le niveau de log que vous souhaitez (de maximum à minimum)
debug
info
warn
error
fatal
panic
Des paramètres cibles peuvent être ajoutés :
target: # Pour le module hardware_probe dans le fichier job.yml hardware: address: /dev/ttyACM0 # Pour le module tcpdump dans le fichier job.yml tcpdump: gatewayIP: 10.42.0.1 # IP de la passerelle utilisée pour filtrer les données networkInterface: wlp2s0 # Interface réseau utilisée pour détecter les données (wlp2s0...) keepPcap: false # Si true, il conserve le fichier pcap à la fin des mesures. ipFilters: # Autres adresses IP utilisées pour filtrer les données apple: false # Si true, il filtre les données relatives à 17.0.0.0/8. launchOnDevice: false # Si true, il lance tcpdump sur le terminal.
Pour plus d'informations sur le module tcpdump, voir : Récupération des données via sonde réseau
Exemple
log-level: debug platform: ios resultPath: ./results target: ip: 192.168.2.4 udid: 00008110-001969180AA8201E name: "iPhone" lang: fr paths: webDriverAgent: /opt/homebrew/lib/node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj ios-deploy: /usr/local/bin/ios-deploy hardware: address: /dev/cu.usbmodem11401 tcpdump: gatewayIP: 192.168.2.1 networkInterface: bridge100 ipFilters: apple: true greenspector: server: https://app.greenspector.com token: ******************************
L'indentation est importante dans ces fichiers, prêtez y attention.