Table des matières
Ce guide décrit comment concevoir efficacement des profils d'Utilisateur Virtuel. Il s'agit d'un guide méthodologique, les points abordés sont détaillés dans le guide de référence et dans les tutoriels. Il est fortement recommandé de lire ce guide dès les premiers tests, juste après la première prise en main de NeoLoad avec le Guide de démarrage rapide.
Le test en charge requiert une attention particulière sur un certain nombre de points afin de produire des résultats pertinents. Il est important de reproduire les multiples manières d'utiliser l'application web et de s'assurer qu'elles sont rejouées correctement. Pour cela, suivre les étapes suivantes :
Enregistrer l'Utilisateur Virtuel. Un Utilisateur Virtuel simule la navigation d'un utilisateur
réel de l'application. Pour créer un utilisateur virtuel, cliquer
sur le bouton "Enregistrer" de la barre d'outils
de NeoLoad. Un navigateur internet est lancé, naviguer sur
l'application pour enregistrer le comportement voulu.
NeoLoad fonctionne comme un proxy pour le navigateur internet et enregistre donc les requêtes HTTP échangées avec le serveur web. Elles sont groupées en pages correspondant généralement à un clic dans l'application.
Pendant la navigation, il est possible de créer des conteneurs représentants les transactions métiers réalisées. Ces conteneurs regroupent ainsi les requêtes et les pages relatives à une même transaction comme un login ou l'achat d'un objet dans une application e-business par exemple. Il est possible de créer des transactions métiers dans un Utilisateur Virtuel après l'enregistrement. Ceci est détaillé dans la section intitulée « Créer des transactions métier ».
Une fois l'enregistrement terminé, NeoLoad recherche les paramètres dynamiques, comme les identifiants de session, et configure leur gestion automatique pour que le profil utilisateur enregistré puisse être rejoué correctement.
Pour en savoir plus sur l'enregistrement, consulter la section intitulée « Enregistrer un scénario ».
Vérifier le comportement. Simuler des utilisateurs ne consiste pas simplement à rejouer les requêtes vers le serveur. Même si la plupart des paramètres dynamiques sont gérés automatiquement par NeoLoad, notamment grâce à la recherche des paramètres dynamiques, d'autres nécessitent plus d'attention. La validation de l'Utilisateur Virtuel permet de s'assurer que tous ces paramètres sont correctement rejoués par NeoLoad.
Cette validation consiste à dérouler le profil de l'Utilisateur Virtuel et à jouer les requêtes sur le serveur. L'interface graphique permet de visualiser toutes les requêtes et les réponses obtenues par le serveur, leur rendu HTML et l'état des variables du scénario. Cela permet donc de vérifier le comportement de l'utilisateur virtuel et de s'assurer qu'il ne contient pas d'erreurs.
Attention, NeoLoad ne détecte pas automatiquement toutes les erreurs. Même si les codes d'erreur HTTP sont détectés par NeoLoad comme une validation échouée, les erreurs fonctionnelles comme le mauvais rejeu d'une transaction métier peuvent ne pas être détectées. En effet, les applications retournent souvent des pages d'erreur ayant un code retour valide au niveau HTTP. Il est donc nécessaire de vérifier que le contenu ou le rendu HTML correspondent bien à ce qui est attendu. Par exemple, un login incorrectement rejoué conduit souvent à une page HTML précisant que "le login ou le mot de passe sont incorrects".
La validation d'un Utilisateur Virtuel est décrite dans la section intitulée « Valider un utilisateur virtuel ».
Corriger le comportement. Lorsqu'un problème a été identifié lors de la validation du comportement d'un Utilisateur Virtuel, il est nécessaire d'en comprendre la cause qui est souvent liée au rejeu d'un ou plusieurs paramètres avec des valeurs incorrectes. Afin de progresser efficacement dans cette correction, il faut gérer les paramètres impliqués un par un, dans l'ordre de leur utilisation dans le profil utilisateur.
Les principales étapes de la correction du comportement d'un Utilisateur Virtuel sont les suivantes :
Identifier la première requête en erreur : typiquement une réponse serveur avec un code HTTP en erreur ou un contenu HTML différent de celui attendu.
Identifier le paramètre à gérer : dans la requête identifiée, tout paramètre dont la valeur peut changer à chaque rejeu, tel qu'un identifiant de session, peut être concerné.
Trouver la requête dont la réponse contient la valeur de ce paramètre : cette valeur doit être extraite par NeoLoad. La fonctionnalité des marqueurs est particulièrement utile pour trouver cette requête.
Identifier la méthode appropriée pour gérer ce paramètre : plusieurs outils sont disponibles dans NeoLoad pour gérer le paramètre dynamique. Chacun d'entre eux a des avantages adaptés à différents cas de figure. Pour choisir le plus approprié au cas présent, se reporter à la section intitulée « Choisir une méthode d'extraction de données ».
Appliquer la méthode retenue : selon la méthode, les requêtes situées après celle où l'on a positionné l'Extracteur doivent être modifiées pour utiliser la variable extraite au lieu d'injecter la valeur enregistrée.
Lancer la recherche des paramètres dynamiques : l'erreur maintenant corrigée a pu empécher la detection de paramètres dynamiques à la suite de ce dernier. Il est donc recommendé de relancer la recherche des paramètres dynamiques. (voir la section intitulée « Les frameworks »).
Valider le comportement : l'objectif est de vérifier si le problème spécifique est réglé.
Cette procédure de gestion des paramètres dynamiques est détaillée dans le tutoriel "Gérer les paramètres dynamiques d'une application".
Modifier le comportement avec des actions logiques. Les actions logiques de NeoLoad permettent d'adapter le comportement d'un Utilisateur Virtuel en fonction des besoins de la simulation :
Certaines actions permettent des modifications légères du comportement comme une pause dans l'exécution, le regroupement de plusieurs pages en une transaction métier, la modification d'une variable ou stopper un Utilisateur Virtuel.
Les boucles permettent de reproduire plusieurs fois des comportements types de l'utilisateur, comme une transaction métier particulière par exemple.
Il est possible d'avoir des actions conditionnelles afin de simuler certaines actions qui dépendent d'un retour du serveur, ou d'un déclenchement d'erreur.
Les actions Javascripts permettent d'exécuter des fonctions simples afin de mettre à jour des variables ou réaliser des traitements spécifiques.
Les Rendez-Vous synchronisent les Utilisateurs Virtuels choisis avant de dérouler le reste de leur scénario.
Le détail des actions logiques disponibles est précisé dans la section intitulée « Les actions logiques ».
Utiliser différents comptes de logins et différentes valeurs. Utiliser des variables pour modifier dynamiquement les valeurs clés comme les comptes de logins ou certains paramètres des formulaires (comme le productID d'une application e-business). Le principal intérêt est de contourner l'utilisation de caches sur le serveur car :
Jouer les même requêtes avec les même valeurs provoque un gain de performance anormal du aux divers caches: pré-chargement en mémoire, pool de connexions, optimisations au niveau du système,...
Désactiver complètement les caches (quand c'est possible) n'est pas réaliste non plus.
Comme précédemment, lorsque le comportement de l'Utilisateur Virtuel est modifié en rendant variables certains de ses paramètres, il est recommandé de le valider à nouveau et de le corriger si nécessaire.
Valider les pages clés. En charge, il est important de vérifier si la réponse du serveur est valide. Il s'agit à la fois de s'assurer que le scénario fonctionne bien comme prévu et que la forte charge ne provoque pas des erreurs sur l'application.
NeoLoad détecte automatiquement les requêtes en erreur en utilisant notamment le code retour HTTP. Par exemple, une requête retournant '500 internal error' sera marquée en erreur par NeoLoad. Cependant, beaucoup d'applications web ne renvoient pas de code erreur HTTP approprié lorsqu'elles gèrent leurs erreurs et NeoLoad ne peut détecter automatiquement l'anomalie.
Il faut alors explicitement gérer le cas en vérifiant la validité du contenu retourné par le serveur aux points clés de l'application. Il est possible de vérifier la présence de texte attendu, par exemple "L'opération a bien été effectuée" ou de vérifier que la réponse ne contient pas "Erreur" par exemple.
Pour définir une validation de contenu :
Dans l'Utilisateur Virtuel, cliquer sur la requête dont la réponse doit être validée.
Cliquer sur le bouton Validation...
en bas à droite.
Ajouter une Validation sur le contenu.
Choisir un mode de validation: recherche de présence ou d'absence de texte simple, ou utiliser une expression régulière.
Après le test, sélectionner les requêtes en erreur ou dont la validation a échouée dans le panneau des erreurs, puis analyser le contenu de la réponse du serveur correspondante pour en déduire l'origine du problème.
Noter que la validation consomme des ressources (CPU, mémoire) de l'injecteur de charge, et qu'il est souvent pertinent de se retreindre au test des pages clés (celles qui font un accès base de donnée par exemple, ou qui sont susceptible d'échouer).
La création de validations de requêtes est détaillée dans le tutoriel "Valider une réponse du serveur".
Définir plusieurs types d'utilisateurs virtuels. Tous les utilisateurs n'utilisent pas une application web de la même manière. Définir un Utilisateur Virtuel pour chaque profil d'utilisateur: navigation-seulement, navigation-et-modifications et administrateur par exemple. L'intérêt est de couvrir les transactions métiers les plus courantes et représentatives pour l'application à tester.
Regrouper ces profils d'Utilisateurs Virtuels au sein d'une population. Les populations permettent de maintenir un ratio entre les utilisateurs lorsque la charge varie. On peut ainsi définir que l'on désire 90% d'utilisateurs classiques et 10% d'administrateurs qu'elle que soit la charge complète simulée.
Les populations permettent également de choisir certains paramètres tels que la bande passante maximum utilisable pour un utilisateur virtuel ou la gestion du cache.
Pour en savoir plus, consulter le guide de référence. Voir la section intitulée « Les Populations ».