Une requête HTTP correspond à l'envoi d'une trame réseau HTTP et à la réception de sa réponse qui peut être une page HTML, une image ou un fichier type CSS par exemple.

Il existe quatre manières de définir une requête :
Définir manuellement la requête. une définition statique de la requête. Permet de définir l'URL et les paramètres à utiliser pour cette requête. Voir la section intitulée « Définir manuellement une requête ».
Suivre la redirection de la requête précédente. signifie que la requête courante est la cible d'un ordre de redirection HTTP de la réponse à la requête précédente. Voir la section intitulée « Suivre la redirection de la requête précédente ».
Suivre un lien de la requête précédente. extrait et suit un lien vérifiant une définition dynamique. Cette option doit être utilisée lorsqu'un scénario simule un clic sur un lien généré dynamiquement. L'injecteur de charge extrait dynamiquement le lien à partir des résultats de la requête précédente (référant) et suit ce lien. Voir la section intitulée « Suivre un lien de la requête précédente ».
Soumettre un formulaire de la requête précédente. extrait et soumet un formulaire à partir d'un formulaire de la requête précédente. Cette option doit être utilisée lorsqu'un scénario soumet un formulaire contenant un champ caché dynamique. L'injecteur de charge extrait dynamiquement le formulaire à partir des résultats de la requête précédente (référant) et permet de soumettre les valeurs extraites dynamiquement. Voir la section intitulée « Soumettre un formulaire de la requête précédente ».

La définition d'une requête manuelle comprend :
La méthode (GET, POST, HEAD, PUT, DELETE, OPTIONS, TRACE, CUSTOM).
Le serveur.
Le chemin (le chemin peut contenir des variables).
Les paramètres (chaque paramètre peut contenir des variables dans le nom ou la valeur).
Des paramètres peuvent être définis pour n'importe quel type de requête (GET, POST, HEAD, PUT...). Certains peuvent être fixés à des valeurs statiques et d'autres à des valeurs dynamiques en utilisant les variables.
L'édition du nom ou de la valeur d'un paramètre s'effectue grâce à une fenêtre spécifique. Un double clic dans le tableau des paramètres sur un nom ou une valeur permet d'ouvrir cette fenêtre.

Le nom peut contenir un texte statique ou une variable NeoLoad.
Lorsque la boite encoder est cochée, le nom
spécifié est converti selon le format MIME
application/x-www-form-urlencoded avant d'être
soumis (ex : les espaces sont encoder par %20). Décocher la boite si
le nom est déjà encodé.

Deux options sont possibles pour la valeur d'un paramètre :
Utiliser une expression. L'expression de la valeur peut contenir du texte statique et des variables NeoLoad. Dans le cas d'un POST, la valeur peut contenir plusieurs lignes.
Utiliser une valeur extraite. Cette option permet de définir une valeur extraite d'une réponse précédente du serveur. Cette option doit être utilisée typiquement dans le cas d'une valeur dynamique généré par le serveur et variant pour chaque utilisateur.
Le bouton "Modifier la configuration de
l'extracteur" permet de modifier manuellement l'extracteur à
utiliser. L'interface est alors celle d'un extracteur de
variable avec la possibilité supplémentaire de sélectionner la
requête de laquelle l'extraction doit s'exécuter. Si aucune
configuration n'est définie, NeoLoad propose de configurer
l'extracteur automatiquement (voir ci-dessous).
Le bouton "Configuration automatique"
déclenche la recherche de ce paramètre dans les requêtes précédentes.
NeoLoad recherche alors dans les requêtes précédentes la valeur de ce
paramètre et la meilleur expression régulière pour l'extraire. Si une
des configurations testées fonctionne, alors NeoLoad remplace
l'extracteur existant avec celui trouvé.
Le bouton "Ajouter au framework..." permet de
migrer l'extracteur de variable en tant que paramètre de framework,
puis de faire une recherche de paramètres dynamiques. Pour plus de
détails, consulter la section intitulée « Les frameworks »
Lorsque la boite "Encoder la valeur" est
cochée, la valeur spécifiée est convertie selon le format MIME
application/x-www-form-urlencoded avant d'être
soumis (ex : les espaces sont encoder par %20). Décocher la boite si
la valeur est déjà encodée.
Quel que soit le type de POST, les requêtes de ce type peuvent avoir des paramètres dans l'URL. Pour traiter séparément les paramètres de POST et d'URL des onglets permettent de séparer les deux cas.

Dans l'exemple ci-dessus l'URL qui sera obtenue lors du test sera
:
http://jack:80/loadtest/form/doit.jsp?firstname=john&lastname=smith&email=john.smith@company.com.
Les requêtes POST avec un contenu de type
"application/octet-stream" ou avec un charset non
standard sont traitées comme du contenu binaire par NeoLoad. Cela assure
qu'aucun encodage d'URL ou de charset ne sera fait sur le contenu avant
d'être joué.

Les requêtes POST avec un contenu de type
"text/...". Le contenu de cette requête peut contenir
des variables NeoLoad
pour générer du contenu dynamique.
Les requêtes POST avec un contenu de type
"multipart/form-data" ont des paramètres réglables
avec une interface spécifique.

Les parties (ou sections) sont définies par un nom et une valeur. Optionnellement, elles peuvent avoir un type de contenu spécifique, de même pour leur charset ou le transfer encoding. Se référer à la RFC1867 pour plus de détails. Chaque champ peut être remplacé par une variable. La valeur peut être une chaîne ou le contenu d'un fichier.


Signifie que la requête courante est la cible d'un ordre de
redirection HTTP de la réponse à la requête précédente. Lorsqu'une requête
est définie comme redirection HTTP, l'injecteur de charge n'utilisera pas
l'URL enregistrée ni les paramètres pour jouer cette requête. Il va
utiliser dynamiquement le résultat de la requête précédente (la requête
précédente doit avoir une réponse de type "302 Moved
Temporarily"). Cela est très utile dans le cas de pages qui font
des redirections contenant des paramètres générés dynamiquement (ex :
/searchresult.jsp?searchID=481825 avec
searchID généré par le serveur).
Dans ce mode, il est possible d'éditer le référant, c'est à dire la requête dont la réponse est la redirection. Cette requête doit obligatoirement se trouver avant la requête courante dans le scénario. NeoLoad affiche alors l'URL de redirection utilisée lors de l'enregistrement.

Extrait et suit un lien vérifiant une définition dynamique. Cette
option doit être utilisée lorsqu'un scénario simule un clic sur un lien
généré dynamiquement. L'injecteur de charge extrait dynamiquement le lien
à partir des résultats de la requête précédente (référant) et suit ce
lien. Il est possible de modifier le référant en cliquant sur le bouton
"Changer le référant", cette requête doit
obligatoirement se trouver avant la requête courante dans le
scénario.
Afin de définir le lien à extraire, il est possible de spécifier les
attributs html du lien à suivre (nom,
id, texte du lien,
alt), ou de définir tous les éléments du lien lui même
(URL, paramètres). Un cas typique est celui où un ou plusieurs paramètres
du lien sont dynamiques.
![]() | Avertissement |
|---|---|
En cas d'utilisation d'expression régulière pour l'attribut html
ou le chemin, les caractères réservés des expressions régulières doivent
être échappés. Les caractères suivant doivent être échappés avec
" |
Dans le cas où plusieurs liens dans la réponse du serveur correspondent à la définition, la dernière option du panneau permet d'en extraire un au hasard ou de spécifier l'occurrence à extraire.
La définition des paramètres permet de définir notamment les paramètres dynamiques. Chaque paramètre présent dans la définition doit être présent dans le lien que NeoLoad doit extraire. Un lien contenant des paramètres supplémentaires par rapport à cette définition pourra être utilisé par NeoLoad.
L'édition du nom ou de la valeur d'un paramètre s'effectue grâce à une fenêtre spécifique. Un double clic dans le tableau des paramètres sur un nom ou une valeur permet d'ouvrir cette fenêtre.
Lors de l'extraction d'un lien, il est possible de créer automatiquement des variables NeoLoad contenant la valeur des paramètres lors de l'exécution de ce lien. Ceci permet d'extraire la partie dynamique d'un lien puis de l'utiliser dans d'autres requêtes. Si par exemple l'application utilise souvent un même paramètre dynamique, il est possible de définir un extracteur de lien lors de la première utilisation de ce paramètre, puis utiliser la variable dans toutes les autres requêtes utilisant ce paramètre. Cela permet de ne pas multiplier les recherches dans les pages de réponse du serveur et ainsi d'augmenter les performances des injecteurs de charge.

Le nom peut contenir un texte statique ou une variable NeoLoad.
Lorsque la boite encoder est cochée, le nom
spécifié est converti selon le format MIME
application/x-www-form-urlencoded avant d'être
soumis (ex : les espaces sont encoder par %20). Décocher la boite si
le nom est déjà encodé.

Trois options sont possibles pour la valeur d'un paramètre :
La valeur doit être une expression. L'expression de la valeur peut contenir du texte statique et des variables NeoLoad. Le lien que NeoLoad va extraire doit contenir ce paramètre avec cette valeur. Cela signifie que la valeur est statique et que tout lien contenant ce paramètre avec une autre valeur ne doit pas être utilisé.
Le paramètre doit exister quelle que soit sa valeur. Le lien que NeoLoad va extraire doit contenir ce paramètre,
peut importe sa valeur. Cela signifie généralement que la valeur de
ce paramètre est dynamique et n'est pas connu à l'avance. On pourra
alors mettre cette valeur dynamique dans une variable NeoLoad en
éditant la colonne "Extraire dans la variable" du
tableau des paramètres.
La valeur doit vérifier une expression régulière. Le lien que NeoLoad va extraire doit contenir ce paramètre et
la valeur doit correspondre à l'expression régulière. Cela signifie
généralement qu'une partie de la valeur de ce paramètre est
dynamique et n'est pas connu à l'avance. On pourra alors mettre la
valeur utilisée dans une variable NeoLoad en éditant la colonne
"Extraire dans la variable" du tableau des
paramètres.
Considérons cet exemple : l'application web génère un identifiant
de recherche searchID, et cet identifiant est
transféré de page en page comme paramètre de requête. L'enregistrement
de la requête ressemble à :

Pendant un test, NeoLoad jouera la requête avec le
searchID enregistré. Il faut donc remplacer le
searchID par la valeur appropriée. La page précédente
contient le lien : <a
href="http://ServerHostname/search.php?searchID=<mygoodsearchid>&page=2">Page2</a>
Il faut donc changer cette requête manuelle en "Suivre un
lien de la requête précédente" :

Dans l'exemple, la valeur du searchID a été
positionnée à <DOIT ETRE PRESENT> qui signifie
que le searchID peut prendre toute forme de valeur.
Avec cette configuration NeoLoad va rechercher un lien avec :
le chemin :
/loadtests/search/index.jsp.
un paramètre page avec la valeur 2.
un paramètre searchID.
La réponse du serveur ne contenant qu'un lien correspondant à
cette description, NeoLoad va utiliser ce lien avec la valeur du
paramètre searchID présent dans la réponse du
serveur.
Le paramètre "page" peut aussi être positionné
à "<DOIT ETRE PRESENT>". Si la réponse contient
plusieurs liens comme :
Alors tous ces liens correspondront à la définition et NeoLoad en choisira un au hasard ou une occurrence particulière en fonction de la configuration du paramètre.<a href="search.php?searchID=<mygoodsearchid>&page=2">page2</a><a href="search.php?searchID=<mygoodsearchid>&page=3">page3</a><a href="search.php?searchID=<mygoodsearchid>&page=4">page4</a>

Extrait et soumet un formulaire à partir d'un formulaire de la requête précédente. Cette option doit être utilisée lorsqu'un scénario soumet un formulaire contenant un champ caché dynamique. L'injecteur de charge extrait dynamiquement le formulaire à partir des résultats de la requête précédente (référant) et permet de soumettre les valeurs dynamiquement extraites.
L'utilisation de cette option permet de définir un formulaire sur
lequel travailler. Le choix de ce formulaire ce fait via la section
Formulaire extrait qui ouvre une nouvelle fenêtre
d'options. Une fois ce formulaire choisi, on peut alors utiliser différent
éléments de ce formulaire dans la requête que l'on va soumettre (URL,
valeur de paramètre).

Le formulaire à extraire doit se trouver dans la réponse à la
requête référant. Il est possible de modifier le référant en cliquant
sur le bouton "Changer le référant", cette requête
doit obligatoirement se trouver avant la requête courante dans le
scénario. Afin de définir le formulaire à extraire, trois options sont
disponibles :
Attribut HTML id ou nom
du formulaire. Ce champ peut contenir une expression
régulière.
Occurrence du formulaire dans la page (exemple : extraire le 2ème formulaire de la réponse du serveur).
Formulaire compatible avec la définition : URL, et nom des paramètres obligatoires (un formulaire contenant des paramètres supplémentaires par rapport à cette définition pourra être utilisé par NeoLoad).
![]() | Avertissement |
|---|---|
En cas d'utilisation d'expression régulière pour l'attribut html
ou le chemin, les caractères réservés des expressions régulières
doivent être échappés. Les caractères suivant doivent être échappés
avec " |
Dans le cas ou plusieurs formulaires dans la réponse du serveur correspondent à la définition, la dernière option du panneau permet d'en extraire un au hasard ou de spécifier l'occurrence à extraire.
La définition des paramètres permet de définir notamment les paramètres dynamiques.
L'édition du nom ou de la valeur d'un paramètre s'effectue grâce à une fenêtre spécifique. Un double clic dans le tableau des paramètres sur un nom ou une valeur permet d'ouvrir cette fenêtre.
Lors de l'extraction d'un formulaire, il est possible de créer automatiquement des variables NeoLoad contenant la valeur des paramètres lors de la soumission de ce formulaire. Ceci permet d'extraire un paramètre dynamique d'un formulaire puis de l'utiliser dans d'autres requêtes. Si par exemple l'application utilise souvent un même paramètre dynamique, il est possible de définir un extracteur de formulaire lors de la première utilisation de ce paramètre, puis d'utiliser la variable dans toutes les autres requêtes utilisant ce paramètre. Cela permet de ne pas multiplier les recherches dans les pages de réponse du serveur et ainsi d'augmenter les performances des injecteurs de charge.

Le nom peut contenir un texte statique ou une variable NeoLoad.
Lorsque la boite encoder est cochée, le nom
spécifié est converti selon le format MIME
application/x-www-form-urlencoded avant d'être
soumis (ex : les espaces sont encoder par %20). Décocher la boite si
le nom est déjà encodé.

Trois options sont possibles pour la valeur d'un paramètre :
Utiliser une expression. L'expression de la valeur peut contenir du texte statique et des variables NeoLoad. La valeur peut contenir plusieurs lignes.
Utiliser la valeur du formulaire extrait. NeoLoad va utiliser la valeur du formulaire extrait pour ce
paramètre. Cela signifie généralement que la valeur de ce paramètre
est dynamique et n'est pas connu à l'avance. On pourra alors mettre
cette valeur dynamique dans une variable NeoLoad en éditant la
colonne "Extraire dans la variable" du tableau
des paramètres. Chaque requête de type "Soumettre un
formulaire de la requête précédente" est supposé contenir
au moins un paramètre de ce type.
Utiliser une valeur extraite. Cette option permet de définir une valeur extraite d'une
réponse précédente du serveur. Cette option doit être utilisée
typiquement dans le cas d'une valeur dynamique générée par le
serveur mais qui n'est pas dans le code HTML du formulaire (sinon
l'option "Utiliser la valeur du formulaire
extrait" est plus adéquat). Typiquement si la valeur du
paramètre est générée en javascript, la valeur doit être extraite
avec un extracteur de variable.
Le bouton "Modifier la configuration de
l'extracteur" permet de modifier manuellement l'extracteur à
utiliser. L'interface est alors celle d'un extracteur de
variable avec la possibilité supplémentaire de sélectionner la
requête de laquelle l'extraction doit s'exécuter. Si aucune
configuration n'est définie, NeoLoad propose de configurer
l'extracteur automatiquement (voir ci-dessous).
Le bouton "Ajouter au framework..." permet de
migrer l'extracteur de variable en tant que paramètre de framework,
puis de faire une recherche de paramètres dynamiques. Pour plus de
détails, consulter la section intitulée « Concept »
Le bouton "Configuration automatique"
déclenche la recherche de ce paramètre dans les requêtes précédentes.
NeoLoad recherche alors dans les requêtes précédentes la valeur de ce
paramètre et la meilleure expression régulière pour l'extraire. Si une
des configurations testées fonctionne, alors NeoLoad remplace
l'extracteur existant avec celui trouvé.
Considérons une application avec un formulaire de recherche tel que celui-ci :
<form name="searchform" method="POST" action="search.jsp"> <input type="text" name="name" size="30" value=""> <input type="text" name="city" size="30" value="NY"> <select name="country" id="country"> <option value="US">US</option> <option value="Canada">Canada</option> <option value="China">China</option> <option value="France">France</option> <option value="UK">UK</option> </select> <input type="radio" name="fastsearch" value="YES"> <input type="radio" name="fastsearch" value="NO"> <input type="hidden" name="computedValue" value="4235"> <input type="submit" name="Submit" value="Submit"> </form>
Dans cet exemple, le champ caché
"computedValue" est généré côté serveur et diffère à
chaque appel.
La requête enregistrée ressemble à :

Pendant un test, NeoLoad jouera la requête avec la valeur
enregistrée du paramètre "computedValue". Il doit
être remplacé par la valeur appropriée : changer cette requête manuelle
en "Soumettre un formulaire de la requête précédente"
:

Utiliser <VALEUR DU FORMULAIRE> comme
valeur pour computedValue permet d'extraire la valeur
générée par le serveur.
De plus, utiliser <VALEUR DU FORMULAIRE>
pour le champ country permet de choisir une valeur au
hasard parmi les valeurs possibles de cette option. De la même manière,
le champ fastsearch aura la valeur
"YES" ou "NO" au hasard durant le
test.
Ainsi, l'extracteur de formulaire ne permet pas seulement d'extraire des valeurs dynamiques générées par le serveur mais permet aussi d'utiliser les différent choix du formulaire de manière aléatoire.