Test de charge – Calcul du temps de stimulation

Les praticiens des tests de performance aspirent toujours à obtenir un scénario similaire à celui de la production et, une fois que c’est le cas, à obtenir une charge suffisamment stable pendant l’exécution du test. Bien qu’une charge constante ne soit pas ce que l’on observe en production, il est important d’atteindre cet objectif du point de vue des tests et de la résolution des problèmes. Comment obtenir cette charge constante pendant toute la durée du test ?

Le premier point à prendre en compte est que, dans un test, le point de départ doit être le « nombre de sessions d’utilisateurs par heure » plutôt que le nombre d’utilisateurs virtuels. Il est important de savoir comment chaque session d’utilisateur est restée active pendant sa visite sur le site web.

Dans la plupart des outils de test de performance, l’ajout de valeurs de temps de réflexion et de valeurs de rythme s’avère utile. Le temps de réflexion permet à l’utilisateur virtuel de faire une pause dans le flux d’activités tout en passant d’une transaction à l’autre. Cela prend en compte le temps d’attente (de réflexion) d’un utilisateur réel pour passer à la transaction suivante du site. De même, le pacing permet à l’utilisateur d’attendre après l’achèvement d’un cycle de flux d’affaires. La plupart des testeurs ignorent la fonctionnalité de test et permettent aux sessions d’utilisateurs de se succéder presque instantanément. Ce n’est pas la meilleure approche à suivre car, dans un environnement de production, il y a toujours un certain délai entre deux sessions d’un même utilisateur.

Mais pour intégrer la situation de production, il faut reproduire un scénario dans lequel il y a des variations dans le temps que prend chaque session d’utilisateur. Le rythme auquel les sessions d’utilisateurs démarrent sera également inégal et, après le test, il sera impossible pour le testeur de juger de la charge exacte qu’il a imposée à l’application.

Ainsi, pour appliquer une charge uniforme au système, ce qui est exactement le cas en production, j’utilise une astuce et je calcule le temps de stimulation à l’aide de cette astuce.

Tous les outils de test de charge offrent la possibilité de démarrer une transaction et de la terminer. Dans le script, au début du cycle, il suffit de mettre en place une minuterie de démarrage pour une transaction et de la terminer immédiatement. La clôture immédiate signifie que l’outil calculera le temps de réponse pour cette transaction comme étant nul. Lors de la première itération, la transaction ajoutée sera assortie d’une heure de début (et de fin immédiate). L’opération sera ensuite appelée à nouveau « start timer » lors de la deuxième itération. La différence entre les temps du premier et du second minuteur de démarrage nous donne le temps passé par l’utilisateur au cours d’une session. Une fois que l’on connaît le temps moyen entre deux sessions ultérieures pour les utilisateurs, on peut calculer le temps d’accélération comme étant le temps à ajouter à la fin du script pour obtenir le temps entre deux sessions ultérieures tel qu’il est observé en production. Une fois le test terminé, toutes les données associées à cette transaction peuvent être exportées dans une feuille Excel et les intervalles entre les transactions peuvent nous aider à calculer le temps de stimulation.


C’est donc l’une des multiples approches que nous pouvons suivre pour identifier la bonne durée de stimulation que nous devons utiliser pendant le test. Vous pouvez également suivre ou utiliser d’autres approches. N’hésitez pas à les partager et à aider la communauté à en savoir plus.