Pas de trafic dans Google Analytics pendant les tests de charge
Ce qui se passe pendant une requête de test de charge
Chaque requête atteint votre serveur où l'application est hébergée, mais elle ne charge aucune ressource :
- JavaScript
- CSS
- images
- polices
- etc
Le temps de réponse mesure le temps écoulé entre juste avant l'envoi de la requête et juste après la réception de la dernière réponse, il n'inclut pas le temps nécessaire pour rendre la réponse, ni ne traite aucun code client, par exemple JavaScript.
Pourquoi Google Analytics ne voit pas le trafic des tests de charge
Google Analytics, et la plupart des outils similaires comme Mixpanel, Segment ou Hotjar, fonctionnent en exécutant un extrait de JavaScript côté client dans un vrai navigateur. Ce script envoie un événement au service d'analytics une fois que la page a été chargée et exécutée dans le navigateur.
Un test de charge n'exécute pas de navigateur. Il envoie des requêtes HTTP brutes directement à votre serveur ou point de terminaison API et mesure comment le serveur répond, sans analyser le HTML, sans télécharger les ressources liées, et sans exécuter aucun JavaScript sur la page. Comme le script Google Analytics ne s'exécute jamais, il n'envoie jamais son signal de pageview ou d'événement, donc le trafic n'apparaît jamais dans votre tableau de bord Analytics, peu importe le nombre d'utilisateurs virtuels que vous envoyez sur le point de terminaison. C'est un comportement attendu, pas un bug ni un signe que votre test n'a pas atteint le serveur.
Où le trafic des tests de charge apparaît-il
Comme la requête elle-même est une vraie requête HTTP, elle est parfaitement visible partout où le trafic est observé au niveau du serveur ou du réseau, plutôt qu'au niveau du navigateur :
- Les journaux d'accès du serveur web et de l'application
- Les journaux du CDN ou du reverse proxy
- Les outils APM backend (New Relic, Datadog, et similaires)
- Les métriques d'infrastructure : CPU, mémoire, nombre de connexions
- Les résultats de tests, codes de réponse et graphiques de temps de réponse de LoadFocus lui-même
Si vous devez confirmer que votre serveur a bien reçu la charge, vérifiez l'une de ces sources plutôt qu'un outil d'analytics côté client.
Pourquoi cela compte lors de la lecture de vos résultats
Comme le temps de réponse dans un test de charge ne mesure que le temps serveur et réseau, et exclut l'analyse, le rendu et l'exécution de script du navigateur, un résultat de test de charge rapide vous indique que le backend a répondu rapidement, mais pas à quelle vitesse un vrai visiteur perçoit que la page est chargée. Une page qui renvoie son HTML en 100 ms mais charge ensuite plusieurs mégaoctets de JavaScript et d'images peut quand même sembler lente pour un utilisateur réel, même si elle paraît rapide dans un test de charge HTTP brut.
Si vous souhaitez également mesurer la performance d'une page du point de vue d'un vrai navigateur, y compris le chargement des ressources, le rendu et les Core Web Vitals, sous charge, il s'agit d'un autre type de vérification qu'un test de charge HTTP brut. Voir https://loadfocus.com/docs/fr-fr/guides/load-testing/page-speed-under-load pour ce volet des tests de performance.