Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Usage

Depuis le dossier DashboardCampagne, executer la commande suivante :

./dashboardCampagne -definition=[fichier-definition] -config=[fichier-config] -screenshots=[dossier-screenshots]

Pour générer le dashboard [dossier-screenshots] doit être précisé mais pas obligatoirement avec des images (le scénario sera généré vide). Il existe des fichiers d'exemple pour le fichier de def dans le dossier example De plus, il faut remplir config.yml avec son token.

La console sort en fin de traitement le détail par étape en fonction des versions. Cela peut être utilisé dans excel pour afficher la comparaison par étape.

Export PDF

Si wkhtmltopdf est installé alors un export PDF se fera automatiquement à partir du fichier HTML.

Si de plus ghostscript est installé alors le pdf sera automatiquement compressé.

Définition

...

Status
colourGreen
titlemaj 6 nov 2024

Le dashboard Greenspector présente les résultats pour une meilleure compréhension. Il calcule en particulier l’Ecoscore Greenspector, une note gobale du service mesuré.

Il est également capable de comparer 2 versions d’une même application, si le parcours utilisateur a le même nombre de d'étapes ainsi que les mêmes noms d'étapes.

Configuration

L'exécutable dashboardCampagne a besoin de config.yml, definition.yml et des ressources pour générer le dashboard de résultats. Les ressources incluent example, i18n, images, site et site_templates. Vérifiez tous ces éléments.

  • Téléchargez depuis le Gitlab Greenspector et placez les dans le dossier où se trouve le dashboardCampagne et modifiez les avec les instructions suivantes :

Fichier de Config

Code Block
languageyaml
cfgs:
  - name: "core-saas"                           # Nom de l'instance
    url: "https://core-saas-prod.greenspector.com"   # URL de l'instance
    token: [MYTOKEN]                      # Token de l'utilisateur
Info

Remplacez [MYTOKEN] avec la valeur appropriée.

Fichier de Définition

Définition du dashboard

Premièrement, nous allons définir les paramètres globaux du dashboard à générer : nom, langue, type d’audit ou unités de mesure.

Code Block
breakoutModewide
languageyaml
##################################################################################
# Dashboard definition
##################################################################################

name: Mesures Application               # Nom du rapport
env: app                                # Nom d'environnement à utiliser (Relatif au fichier de config)
evolutiontype: comparaison              # "comparaison" ou "evolution" - Change le type des graphes de suiviversion des versionsgraphiques
generationtype: # optional - define which generation type is expected by the DashboardCampagne. Possible values are "Scenarios" for scenario generation only, "Dashboard" for dashboard generation only and "All" (default) for both
usembfordata: true # optional - replace  kB unit to MB one.
shouldgenerateevolutionperdomain: true # optional - show evolution per domain (default false) Dashboard               # Optionnel - Défaut: "All" - "All", "Dashboard" ou "Scenarios". Définit quels fichiers seront générés
basenetworktype: WIFI                   # Optionnel - Défaut: "WIFI" - "WIFI", "4G", "3G" ou "2G". Le réseau utilisé durant les mesures
usembfordata: false                     # Optionnel - Remplace Ko par Mo
shouldgenerateevolutionperdomain: false # Optionnel - Défaut: false - Evolution d'affichage par domaine
pausedurationtouseforconsumption: 30.0  # optionalOptionnel float64 - set the duration in seconds used to compute energy consumption and impact of pauses (default is 30.0 seconds)
language: # optional - define the language to use for exported files (among "FR" and "EN", default is "EN").
basenetworktype: # optional - the network to use for the whole document as a base. Default: WIFI
version: 2.0 # optional - can be 1.0 or 2.0. Default: 2.0
web: true # optional - if measurements are web change thresholds for data consumptions - useful only version: 2.0. Default: false

# Ajouter `comparisons` pour des comparaisons des métriques entre plusieurs plateformes sur le réseau WIFI
comparisons: 
  metrics:
    - Performance
    - Data
    - EnergySpeed
    - EnergyConsumption
    - Carbon
  audits:
    - name: [Nom de la série à afficher (exemple : "Samsung S7")]
      id: [ID de l'audit à récupérer (exemple : 78914)]
      device: [Nom du device à récupérer sur APP]
      network: [Réseau à utiliser ; optionnel ; valeur par défaut : WIFI]
      extramestime: [Temps ajoutéDéfaut: 30.0 - pause en secondes pour une étape de type PAUSE (défaut: 30.0)
language: EN                            # Optionnel - Langue du rapport : "FR" (défaut) ou "EN"
version: 2.0                            # Optionnel - Défaut: 2.0 - "1.0" ou "2.0" ou "2.1"
web: true                               # Optionnel - Défaut: false. Pour les mesures web, renseigner true pour changer les seuils de consommations de données

Mesures

La seconde partie fait le lien entre la génération du dashboard avec les mesures stockées dans l'Atelier de mesures:

Code Block
breakoutModewide
languageyaml
##################################################################################
# Campagne de mesure utilisée pour calculer l'Ecoscore
##################################################################################

auditids:
  - version: v1.0.0         # Nom de version à afficher
    plateforme: Galaxy S9   # Nom de la plateforme affichée dans App Greenspector
    os: Android             # "Android" ou "iOS"
    idwifi: [MYIDWIFI]      # ID de l'audit en WIFI
    id4g:                   # Optionnel - ID de l'audit en 4G pour comparer les mesures réseau (ou id3g pour des mesures en 3G)
    extramestime: 1.0       # float64 - Temps en secondes ajoutées à la fin des mesuresétapes de chargement. àCe déduiretemps des perf. -n'est pas pris en secondes]compte pour la métrique de performance
 datacsvfile: [optionnel (utile pour iOS uniquement) - Chemin vers un .csv qui contient les data au format US et trois colonnes "auditId,step,dataUsage (kB)"]
    - [...]

auditids:
  - version: [Nom de la version à afficher]
    plateforme: [Nom de la plateforme à aller chercher sur App]
    os: [Nom de l'OS = Android ou iOS]
    idwifi: [id de l'audit WIFI]
    id4g: [id de l'audit 4G - optionnel, utilisé pour comparaison de réseau]
    id3g: [id de l'audit 3G - optionnel, utilisé pour comparaison de réseau]
    id2g: [id de l'audit 2G - optionnel, utilisé pour comparaison de réseau]
    extramestime: [Temps ajouté à la fin des mesures de chargement à déduire des perf. - en secondes]
    date: [Date de la mesure à afficher]
    datacsvfile: [optionnel (utile pour iOS uniquement) - Chemin vers un .csv qui contient les data au format US et trois colonnes "auditId,step,dataUsage (kB)"]
    filternetworkonversions: [optionnel - si 'true' filtre le réseau sur chaque version fournie (idwifi, id4g ...). Par exemple, uniquement les mesures WIFI seront récupérées sur la version de idwifi. Si la valeur est 'false', alors tous les réseaux sont récupérés sur la valeur fournie. Valeur par défaut = 'true']

Cela permet d'afficher l'évolution des métriques entre version. Si cela n'est pas rempli, ou que uniquement l'idWifi est rempli, il n'y a pas de courbe d'évolution.

Dans les étapes :

Code Block
  - name: [Nom du step dans GSPT]
    type : [Type d'étape]
    energy: [A monitorer pour l’énergie - optionnel, dépend du type d'étape si pas de valeur saisie]
    data: [A monitorer pour la data - optionnel, dépend du type d'étape si pas de valeur saisie]
    performance: [A monitorer pour la perf - optionnel, dépend du type d'étape si pas de valeur saisie]
    domain: [Domaine à associer]
    order: [Ordre pour la génération du scénario]
    displayname: [Nom du step à afficher dans le rapport] (optionnel, si ajouté alors ce nom remplace le champs name qui correspond à la mesure)
    critical: [Est une étape critique du parcours fonctionnel] (optionnel, Par défaut false)

Les types d'étape

Les différents types d'étapes sont les suivants :

  • UserAction (action ou scroll sur l'écran)

  • Loading (chargement d'un écran)

  • Pause (pause sur un écran)

En fonction du type d'étape, la sévérité sur les notations peut différer. Le type d'étape est utile également pour calculer différentes moyennes.

Par exemple :

  • les étapes UserAction sont moins sévèrement notées sur la performance

  • les étapes Pause ne sont pas prises en compte de le calcul de la performance par défaut

Si le nom de l'étape respecte le nommage suivant alors son type sera affecté automatiquement. Il peut toujours être surchargé en définissant l'option type :

  • PAUSE_<nom_de_l'étape> : assigné en tant que type Pause

  • ACTION_<nom_de_l'étape> : assigné en tant que type UserAction

  • SCROLL_<nom_de_l'étape> : assigné en tant que type UserAction

  • CHRGT_<nom_de_l'étape> : assigné en tant que type Loading

Évaluation environnementale

Il est possible de réaliser une évaluation environnementale avec les données du dashboard et le service co2-algorithm-service en ajoutant un paramètre environmentalinput:

Code Block
environmentalinput:
  useroptions:
    userlocations:
      france: 97 # % users in france
      world: 3 # % users in another part of the world (not in France)
    usertypes:
      smartphone: 55 # % users on smartphone
      tablet: 1 # % users on tablet
      pc: 44 # % users on PC
  networkoptions:
    networklocations:
      france: 97 # % users in france
      world: 3 # % users in another part of the world (not in France)
    networktypes:
      gsm2g3g: 25 # % users in 2G/3G
      gsm4g5g: 25 # % users in 4G/5G
      wiredfibre: 25 # % users in fiber
      wiredxdsl: 25 # % users in adsl/xdsl
  serveroptions:
    serverlocations:
      france: 100 # % server in France
      world: 0 # % server in another part of the world (not in France)
    servertypes:
      complexserver: 100 # % complex server
      simpleserver: 0 # % simple server
    # parameters: # optional
    #   pue: 1.5 # [optional - data center PUE, minimum 1.0]
    # datainput: # optional
    #   reqnetwork: 200 # [optional - number of http requests. (if non specified, it is deducted from the number of data exchanged on network during the scenario]

Configuration du Proxy

Il est possible d'utiliser un proxy pour effectuer les différentes requêtes. Par défault, l'outil va chercher à récupérer des informations sur le proxy dans les variables d'environnement. Sur Windows et Mac il existe d'autres manières pour configurer le proxy qui sont elles aussi récupérées (ex: Fichier d'autoconfiguration PAC, ...). Pour savoir quels méthodes sont supportés ça se passe ici : Méthodes d'auto-configuration du proxy.

Il existe cependant une méthode de configuration manuelle du proxy. Il suffit d'ajouter au fichier config.yml :

Code Block
proxy:
  http: http://monproxy.local:8080 # Proxy pour les URL en http
  https: http://monproxy.local:8080 # Proxy pour les URL en httpsdate: 07/12/2023        # Date de mesure à afficher
Info

Remplacez [MYIDWIFI] grâce à a procédure suivante.

Pour identifier MYIDWIFI, allez sur l'Atelier de mesures. Sélectionnez la bonne version dans la liste et copiez le second nombre dans l’URL. C’est l’identifiant de l'audit.

...

Impact environnemental

En plus de regrouper et présenter les résultats, le dashboard propose une projection de l’impact environnemental. Dans cette partie, précisez les paramètres pour obtenir une projection précise grâce à notre modèle d’impact Greenspector.

Code Block
breakoutModewide
languageyaml
##################################################################################
# Paramètres d'impact environnemental (optionnel)
##################################################################################

environmentalinput:
  useroptions:
    userlocations:
      france: 20            # % utilisateurs en France
      world: 80             # % utilisateurs dans une autre partie du monde (hors France)
    usertypes:
      smartphone: 50        # % utilisateurs sur smartphone
      tablet: 30            # % utilisateurs sur tablette
      pc: 20                # % utilisateurs sur PC
  networkoptions:
    networklocations:
      france: 20            # % utilisateurs en France
      world: 80             # % utilisateurs dans une autre partie du monde (hors France)
    networktypes:
      gsm2g3g: 4            # % utilisateurs en 2G/3G
      gsm4g5g: 15           # % utilisateurs en 4G/5G
      wiredfibre: 39        # % utilisateurs en fibre
      wiredxdsl: 42         # % utilisateurs en adsl/xdsl
  serveroptions:
    serverlocations:
      france: 20            # % server en France
      world: 80             # % server dans une autre partie du monde (hors France)
    servertypes:
      complexserver: 70     # % server complexe
      simpleserver: 30      # % server simple
Note

La somme de chacune des répartitions doit être égale à 100.

Le paramètre du type de serveur (servertypes) sert à estimer l’impact serveur.

  • Serveur simple permet de modéliser des infrastuctures avec maximum 2 VM ou conteneurs (Par exemple un front et un backend), sans compter des services tiers.

    • Par exemple : Une VM pour le front et une VM pour le backend.

  • Serveur complexe permet de modéliser le reste.

On met donc 100% à serveur complexe si l'infrastructure compte plus de 2 VM / conteneurs.

Comparaisons étape par étape

Cette partie est seulement utilisée pour comparer deux versions d’une même application.

Code Block
breakoutModewide
languageyaml
##################################################################################
# Comparaisons étape par étape avec une autre campagne de mesure (optionnel)
##################################################################################

comparisons:
  metrics:                  # Métriques utilisées pour la comparaison
    - Performance
    - Data
    - EnergySpeed
    - EnergyConsumption
    - Carbon
  audits:
    - name: S9              # Nom de la série à afficher
      id: 12345             # Id de l'audit
      device: Galaxy S9     # Nom de l'appareil
      network: WIFI         # Optionnel - "WIFI"(défaut), "4G", "3G" ou "2G"
      extramestime: 1.0     # Temps ajouté à la fin des étapes de chargement. Ce temps n'est pas pris en compte pour la mesure de performance.
    - [...]

Le groupe metrics liste les métriques sur lesquelles les versions d’une même application vont être comparées. Mettez en commentaire les métriques dont la comparaison n’est pas nécessaire d'être affichée dans le dashboard.

Le groupe audits comprend l’ensemble des versions qui vont être comparées.

Définition des étapes

Cette dernière partie obligatoire définit quelles étapes vont être analysées.

Code Block
breakoutModewide
languageyaml
##################################################################################
# Définition des étapes
##################################################################################

refname: "PAUSE_reference"
steps:
  - name: "PAUSE_reference"
    domain: Tech
  - name: "CHRGT_accueil"
    domain: Accueil
  - name: "PAUSE_accueil"
    domain: Accueil
  - name: "CHRGT_cookies"
    domain: Accueil  
    # type: action        # Optionnel - Type d'étape. Si non renseigné  
    # energy: true        # Optionnel - Etape à utiliser pour l'énergie. Si non renseignée, la valeur dépend du type d'étape
    # data: true          # Optionnel - Etape à utiliser pour les données. Si non renseignée, la valeur dépend du type d'étape
    # performance: true   # Optionnel - Etape à utiliser pour la performance. Si non renseignée, la valeur dépend du type d'étape
    # order: 1            # Optionnel - Ordre utilisé pour le rapport scénario
    # displayname:        # Optionnel - Nom à afficher dans le rapport au lieu du nom de la mesure
    # critical: false     # Optionnel - Défaut: false. Peut définir l'étape comme critique du parcours fonctionnel

Pour chaque étape, détaillez quelle métrique doit être prise en compte ou si cette étape est critique. Pour un dashboard clair, un nom plus lisible d'étape peut être utilisé.

Info

Comme vu dans 06 - Découvrir le langage de test GDSL , les étapes sont divisées en 4 catégories : CHRGT, PAUSE, ACTION, SCROLL, respectivement pour un chargement, une pause, une action et un scroll.

Les étapes de PAUSE ne sont pas prises en compte dans la performance parce qu’elles ont une durée fixe.

Générer un dashboard

Pour générer un premier dashboard, exécutez la commande suivante :

  • Windows - Linux - MacOS:

Code Block
languagebash
dashboardcampagne -config=config.yml -definition=definition.yml -screenshots=screenshots

Le navigateur web va ouvrir et afficher le dashboard en format .html.

De plus, un fichier .pdf se génère seulement sur Linux.

Note

Même si le dashboardcampagne n’est pas en échec, assurez vous de vérifier les logs. Des erreurs non fatales peuvent se produire.

...

En plus du dashboard de résultats, un deuxième fichier avec les captures avant et après chaque étape est également généré en format HTML et PDF. Ajoutez l’argument -screenshots=screenshots à la commande dashboardCampaign pour avoir cette fonctionnalité.

...

Export PDF

Si wkhtmltopdf est installé alors un export PDF se fera automatiquement à partir du fichier HTML.

Si de plus ghostscript est installé alors le pdf sera automatiquement compressé.