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 Current »

Le TestRunner a besoin de fichiers de config et de tâches pour exécuter les tests. Ils se trouvent dans la section Modules/Testrunner/Templates 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 android disponible dans la section Modules/Testrunner/Job pour Android 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: test avec un script gdsl

    • apk: benchmark à partir d'un APK (ex : com.google.android.youtube)

    • url: benchmark à partir d’une URL (ex: https://metropole.nantes.fr)

    • freerunner: test manuel (dans ce cas, les champs job.monitoredPackages, job.stepName et job.duration doivent être remplis)

  • greenspector/application

    • name : le nom de l'application Greenspector App

    • version : le nom de la version

job:
  # Liste de toutes les apk obligatoires à installer sur le téléphone avant le lancement du test
  # L'URL peut être le nom du package à installer depuis le Playstore, le chemin en 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:
    android_system_monitoring: false
    hardware_probe: false
    tcpdump: false
  • testsSuites

    • name: le nom de l’application

    • testFiles: le chemin du fichier du parcours fonctionnel

  • monitoredPackages:

    • pour les sites web : browser package

    • pour les app: app package

  • iterations: Nombre d'itérations pour chaque cas de test

  • extras:

    • config-screenbrightness: niveau de luminosité (50% = 127)

    • config-skipsetupphone:

      • “true” : saute la préparation du terminal (nettoyage du cache, …)

      • “false”

    • PAUSEDURATION

    • PAUSEAFTERLOAD

  • 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

  • networkMode: Veuillez noter que votre téléphone doit être capable de gérer le mode réseau.

    • WIFI

    • 4G

    • 3G

  • modules

    • android_system_monitoring: “false” (utilisation de la sonde dumpsys pour obtenir plus de résultats comme la mémoire utilisée par SQL, le nombre de vues chargées...)

    • 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 :

  • config-compressedLayoutHierarchy: true

  • config-waitForIdle: true (true par défaut, si “faux” fixer le délais d’idle à 0)

  • PAUSEAFTERACTION: 500

  • PAUSEAFTERSCROLL: 500

  • Variables nécessaires (id, mot de passe, ...)

Example

# Fichier de configuration du job Testrunner
mode: custom
greenspector:
  application:
    name: APP3
    version: "test-18/02/2024"

job: # Custom job android apk
  testsSuites:
    - name: APP3
      testFiles:
        - journey.testgb
  monitoredPackages:
    - com.android.chrome
  iterations: 1
  networkMode: WIFI
  testTimeout: 60m0s
  online: false
  modules:
    android_system_monitoring: false
    hardware_probe: false
  extras:
    config-skipsetupphone: true
    config-screenbrightness: "127"
    PAUSEDURATION: 5000 # A remettre à 30000 pour les mesures
    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 android disponible dans la section Modules/Testrunner/Config for Android dans l'application Greenspector.

Les différentes lignes de code sont expliquées ci-dessous.

platform: mobile
target:
  connection: wifi
  ip: ${PHONE_IP}
  port: ${PHONE_PORT}
  paths:
    adb: $PATH_TO_ADB # Le chemin d'accès à adb dans votre installation du SDK Android
    aapt: $PATH_TO_AAPT # Le chemin d'accès à aapt dans votre installation du SDK Android
greenspector:
  server: ${GREENSPECTOR_CORE_SERVER_URL}
  token: ${PRIVATE_TOKEN}
  • plateform: La plateforme sur laquelle vous testez (mobile)

  • connection: La façon dont l'appareil est connecté

    • wifi

    • usb

  • ip: Adresse IP du mobile

  • port: Le port utilisé par adb pour se connecter à l'appareil. La valeur par défaut est 5555

  • paths/adb: Le chemin d'accès à adb dans votre installation du SDK Android

  • paths/aapt: Le chemin d'accès à aapt dans votre installation du SDK Android

  • 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 :

  • resultPath: Le chemin où vous voulez que le Testrunner enregistre les résultats des tests. La valeur par défaut est ./greenspector.

  • 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:
  ip: x.x.x.x
  # 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       
    networkInterface: wlp2s0   
    keepPcap: false          
    ipFilters:
        apple: false
    launchOnDevice: false       # If true, it launches tcpdump on the device
  • target.ip : IP de l'appareil à mesurer

  • tcpdump : permet de récupérer les données échangées sur un téléphone. Ce module n'est pas compatible avec Windows.

    • gatewayIP : IP de la passerelle utilisée pour filtrer les données.ter data. A retrouver avec la commande ifconfig

    • networkInterface : Interface réseau utilisée pour détecter les données. A retrouver avec la commande ifconfig ou sudo tcpdump -D.

    • keepPcap :

      • true: conserve le fichier pcap à la fin des mesures

    • ipFilters : filtres pour extraire les échanges réseau de la mesure

      • apple: true : dans le cas d'une mesure iOS, pour filtrer les adresses IP correspondant à 17.0.0.0/8 (Apple).

    • launchOnDevice :

      • true: lance tcpdump sur l'appareil.

L'IP du téléphone et l'IP de la passerelle doivent se trouver sur le même réseau. Normalement, les IP sont du type 10.42.0.x

Example

platform: mobile
resultPath: ./greenspector
log-level: debug

target:
  connection: wifi
  ip: 10.0.6.34
  port: 5555
  paths:
    adb: adb
    aapt: aapt
  hardware:
    address: /dev/ttyACM0

greenspector:
  server: https://app.greenspector.com
  token: ******************************

L'indentation est importante dans ces fichiers, soyez-en conscients.

  • No labels