Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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.

  • No labels