Table des matières
| Analyser les erreurs dans le panneau d'erreur |
| Comparer plusieurs résultats de test |
Ce tutoriel décrit comment utiliser le panneau détaillant les erreurs d'exécution de requêtes dans NeoLoad, afin de corriger un Utilisateur Virtuel lors de sa mise au point, ou de mieux comprendre le comportement du serveur lors d'un test en charge.
Afin de bien comprendre ce tutoriel, il est conseillé d'avoir lu auparavant le Chapitre 10, Guide de conception.
Les problèmes ou erreurs intervenant durant l'exécution d'un scénario de test peuvent altérer vos résultats, les rendant partiellement ou au pire totalement inutilisables. Il s'avère donc important d'identifier et de comprendre les erreurs intervenant pendant le déroulement d'un scénario. Dans certaines situations, comprendre la source d'un problème peut s'avérer être une tâche relativement complexe. Afin de vous aider à analyser les causes d'une erreur, NeoLoad vous fournit bon nombre d'informations sur le contexte dans lequel l'erreur s'est produite. Ce tutoriel décrit en détails où et comment NeoLoad fournit ces informations.
Les deux principaux endroits où NeoLoad vous indique et décrit en
détails les erreurs survenues se trouvent dans la boîte de dialogue
Valider un Utilisateur Virtuel et dans l'onglet
Erreurs du mode Résultats. La
section suivante passe en revue la boîte de dialogue Valider un
Utilisateur Virtuel et vous permet de comprendre en détails les
informations fournies par NeoLoad. Dans la mesure où les informations
fournies par NeoLoad et la façon dont elles sont présentées sont très
similaires, voire identiques dans les deux cas, la troisième section ne
détaillera que les légères différences et les informations spécifiques au
mode Résultats.
Un Utilisateur virtuel
simule un utilisateur réel accédant à une série de pages
Web. Lorsque vous avez créé et défini un utilisateur virtuel, l'étape de
validation de l'utilisateur virtuel est primordiale. Vérifier que l'utilisateur virtuel est
valide avant de l'intégrer dans un scénario vous garantira que les
Utilisateurs virtuels fonctionneront au moins sur une base par
utilisateur. Cela est d'autant plus vrai lorsque les pages utilisées par
les Utilisateurs virtuels contiennent des informations dynamiques telles
que des valeurs de paramètres ou de formulaires. La capture ci-dessous
illustre une situation dans laquelle un Utilisateur virtuel a été défini
avec trois pages. Pour effectuer cela, nous avons sélectionné le mode
Conception puis effectué la configuration dans l'onglet
Utilisateurs Virtuels.

Dans notre exemple, l'utilisateur virtuel appelé
SimpleUser navigue sur trois pages qui permettent de
connecter l'utilisateur à l'application. La première page
/loadtest/welcome est la page d'accueil de
l'application, la page/loadtest/signOn permet à
l'utilisateur d'entrer son identifiant et son mot de passe. Enfin, la page
/loadtest/signedOn est la page qui confirme que
l'utilisateur a réussi à se connecter. Cet exemple est simple et plutôt
peu réaliste, un Utilisateur virtuel simulerait vraisemblablement un
comportement plus complexe, mais nous nous tiendrons à un exemple simple
afin de bien illustrer les situations d'erreur.
Vous pouvez valider un utilisateur virtuel en cliquant sur le bouton
. NeoLoad affiche alors la boîte de dialogue
Valider un Utilisateur Virtuel. Vous pouvez lancer la
vérification, ou en d'autres termes, faire agir l'utilisateur virtuel en
cliquant sur le bouton
Lancer la validation.

Informations fournies par la boîte de dialogue Valider un Utilisateur Virtuel
Pages et requêtes
NeoLoad joue les pages contenues dans l'Utilisateur virtuel et
affiche une suite de lignes: une ligne pour chaque
page et une pour chaque requête définie pour cette
page HTML. Par exemple, la page HTML
/loadtest/signedOn est définie par une requête
HTTP unique vers /loadtest/signon.shtml en
utilisant la méthode GET. La boîte de dialogue
Valider l'Utilisateur Virtuel affiche deux
lignes, une pour la page HTML, et à la suite de celle-ci une autre
pour la requête. Si la page avait contenu plusieurs requêtes, la
boîte de dialogue aurait affiché une ligne pour chaque
requête.
Erreurs, codes de réponse et évaluations d'assertion
Les erreurs, les codes de réponse et les évaluations
d'assertion ne sont significatives que pour les requêtes, c'est
pourquoi seules les lignes correspondant à des requêtes affichent
des informations en rapport à ces éléments. Lorsqu'une requête
contient un code réponse (décrit un peu plus loin) associé à une
erreur ou contient une assertion fausse, NeoLoad marque la ligne
associée avec une icône
plutôt qu'une icône de type
. Si l'une des requêtes échoue, la boîte de
dialogue affiche un en-tête avec un avertissement du style:
L'utilisateur virtuel SimpleUser
contient X erreur(s).où X représente le
nombre d'erreurs.
Une assertion valide une réponse du serveur durant un test en définissant ou validant une condition devant être réalisée. Nous verrons également un peu plus dans cette section combien les assertions peuvent se révéler primordiales.
Dans notre exemple, la requête HTTP vers
/loadtest/error/ a échoué. Elle comporte un code
réponse 500 mais pas d'assertion échouée. En sélectionnant cette
ligne, la boîte de dialogue affiche les détails de la requête
échouée.
Détails de la requête
Lorsqu'une requête échouée est sélectionnée, la boîte de dialogue affiche les éléments suivants:
Page : La page à laquelle la requête appartient.
Il s'agit d'un lien dynamique
et NeoLoad ira directement à la page
spécifiée dans le profil de l'utilisateur virtuel si vous
suivez le lien.
Requête : La requête qui a échoué.
Il s'agit à nouveau d'un lien dynamique et NeoLoad ira directement à la page spécifiée dans les utilisateurs virtuels si vous suivez le lien. Cette fonctionnalité s'avère particulièrement utile lorsque vous désirez vérifier la façon dont la requête est définie, tout spécialement par rapport aux valeurs dynamiques telles que les URL dynamiques ou les paramètres de formulaire dynamique.
![]() | Astuce |
|---|---|
Vous pouvez facilement revenir des profils
d'utilisateurs virtuels vers la boîte de dialogue
![]() Ceci facilite la navigation entre la définition de la page enregistrée et les détails d'erreurs. |
Détails de réponse: Les détails comprennent l'heure à laquelle la réponse a été reçue, le code de réponse, la durée de la réponse ainsi que le nombre d'octets de la réponse.
Le code réponse est également un lien dynamique
, NeoLoad affiche dans une fenêtre la
description de ce code réponse.
Codes réponse d'erreur HTTP
Les codes de réponse HTTP sont des codes standards. Pour les types 400 et 500, ils indiquent les conditions d'erreur et sont détectés automatiquement par NeoLoad. Les codes de réponse HTTP vous donnent une bonne indication du type d'erreur en question.
Codes d'erreur NeoLoad
Les codes de statuts de NeoLoad sont toujours précédés des lettres NL et sont générés par NeoLoad car un mécanisme client a empêché de véritablement envoyer une requête. Des erreurs dues à des échecs de connexion ou des problèmes réseau sont des exemples typiques de telles situations.
Contenus des requêtes, réponses et
assertions: la zone de groupe Détails
vous permet de sélectionner le contenu à
afficher.
Cette fonctionnalité se révèle souvent incontournable lorsqu'il s'agit de comprendre la cause d'une erreur. Visualiser la requête permettra, par exemple, de vérifier ce qui est faux (un paramètre dynamique, une URL erronée,...). La réponse comportera l'explication détaillée de l'erreur dans le cas d'une erreur côté serveur et la description associée au code dans le cas d'une erreur de NeoLoad.
Dans notre exemple, le code de réponse retourné est 500, c'est-à-dire une erreur de serveur interne, le contenu de la réponse décrit très clairement la cause de l'erreur. Elle est ici due à une erreur interne sur la page JSP appelée:

![]() | Astuce |
|---|---|
Vous pouvez facilement effectuer une recherche
textuelle dans la sous-fenêtre contenant la description de
l'erreur ou la véritable requête ou réponse en cliquant
droit dans la sous-fenêtre et en sélectionnant la commande
![]() |
La capture d'écran ci-dessous illustre une situation où une erreur au niveau couche réseau est survenue. Dans ce cas précis, au lieu d'un code réponse HTTP, un code de statut NeoLoad est associé à l'erreur et la réponse HTTP contient la description de l'erreur NeoLoad :

Un mot sur les assertions
Dans notre exemple, lorsque le process de login échoue, l'application renvoie une page indiquant que l'opération a échoué. Ceci implique qu'aucune erreur, que cela soit côté serveur ou côté NeoLoad, n'a été détectée. Toutefois, cette situation est très certainement une situation d'erreur. Si notre Utilisateur virtuel avait comporté des pages supplémentaires dépendantes de la réussite du login, une erreur se serait très probablement produite plus tard dans l'une de ces pages. Il s'avère donc crucial d'utiliser les assertions afin de détecter les situations de ce type. Les assertions vous aident à identifier une situation d'erreur tôt dans le scénario et à éviter d'analyser des erreurs incompréhensibles dues à des dysfonctionnements antérieurs.
La capture d'écran ci-dessous montre comment une assertion peut être utilisée pour détecter que le processus de login a échoué. Notez que le code de réponse HTTP est 200, indiquant ainsi une réponse HTTP parfaitement valide.

Pour plus d'informations sur l'utilisation des assertions, voir la section intitulée « Valider une réponse du serveur ».
Le déroulement d'un scénario va engendrer des résultats statistiques
et fournir une liste exhaustive de toutes les erreurs (ainsi que les
échecs d'assertion) qui sont survenus durant l'exécution de ce scénario.
La capture d'écran ci-dessous vous montre ce que l'onglet
Erreurs affiche dans le mode
Résultats après avoir déroulé un scénario particulier. Comme
mentionné précédemment, l'information présentée dans cet onglet est très
similaire à celle présentée dans la boîte de dialogue Valider un
Utilisateur Virtuel:

Les erreurs sont également affichées par NeoLoad en mode
Exécution pendant l'exécution du scénario dans l'onglet
Erreurs.
Les points suivants mettent en évidence les différences entre la
boîte de dialogue Valider un Utilisateur Virtuel et
l'onglet Erreurs:
L'onglet Erreurs liste
les lignes pour les requêtes uniquement, contrairement à la
boîte de dialogue qui présente une ligne pour la page HTML à laquelle
la requête appartient. Ceci s'explique principalement par le fait que
l'onglet Erreurs affiche une ligne d'erreur pour
chaque type et chaque instance d'utilisateur virtuel joué durant le
scénario.
L'onglet Erreurs
affiche les erreurs pour chaque Utilisateur Virtuel joué
durant le scénario, contrairement à la boîte de dialogue qui, par
définition, ne concerne qu'un utilisateur unique. Un scénario définit
un nombre d'utilisateurs virtuels à jouer. Ces utilisateurs
appartiennent à différentes populations et comprennent différents
types d'utilisateurs. De ce fait, des erreurs peuvent survenir pour
des utilisateurs multiples et pour des types multiples
d'utilisateurs.
Dans notre exemple, le scénario comporte des erreurs concernant
deux types d'utilisateurs, SimpleUser et
OccasionnalUser. NeoLoad numérote les utilisateurs
dans l'ordre de leur entrée dans le scénario.
L'onglet Erreurs
fournit la réponse et la requête précédant la requête causant
l'erreur. Dans certains cas, une erreur de requête peut
être causée par la requête ou réponse précédente. Par conséquent,
pouvoir accéder facilement à ces éléments vous aide considérablement à
comprendre la raison d'une erreur.
La suite de cette section décrit comment les nouveaux éléments
fournis par l'onglet Erreurs peuvent être
utilisés.
Filtrer et trier par Utilisateurs Virtuels
Dans notre exemple, nous souhaitons analyser l'erreur 500 générée
sur l'utilisateur virtuel OccasionnalUser. De même,
nous souhaitons nous concentrer sur un utilisateur particulier de ce type:
OccasionnalUser#5.
Filtrer: Pour travailler avec un type spécifique d'utilisateur, le plus simple est de filtrer l'affichage des erreurs en sélectionnant le type d'utilisateur virtuel dans la liste déroulante Utilisateur virtuel.
Trier: En cliquant sur le titre de la colonne Utilisateur Virtuel, vous pouvez trier les erreurs par type d'utilisateur virtuel. Vous pouvez ainsi facilement travailler avec un type d'utilisateur particulier.
La capture d'écran suivante met en évidence les informations
d'erreur après un filtrage sur OccasionnalUser et un
tri par Utilisateur virtuel:

Utilisation de la requête précédente
Dans notre exemple, la requête GET
/loadtest/error a retourné un code d'erreur HTTP 500.
Il s'agit d'un code d'erreur Erreur Interne de Servlet.
En jettant un oeil à la requête précédente (en sélectionnant le
bouton radio Requête précédente), on s'aperçoit que la page
loadtest/redirect/simple.jsp a été appelée:

Poussons à présent notre recherche un peu plus loin en affichant la
réponse retournée par la requête précédente. Pour ce faire, cliquons sur
le bouton radio "réponse précédente":

La réponse contient un code 302 Moved Temporarily
qui redirige l'agent client vers la page intitulée
loadtest/error. Notre problème se trouve donc dans
loadtest/redirect/simple.jsp qui nous redirige vers une
page en erreur. Cet exemple simple vous montre comment utiliser à bon
escient les informations fournies par NeoLoad concernant le contexte dans
lequel une erreur survient.
Pour plus d'informations sur l'utilisation des assertions et la validation des réponses serveur, voir la section intitulée « Valider une réponse du serveur ».
Pour plus d'informations sur les codes de réponses HTTP et les codes de statuts de NeoLoad, voir l'annexe.