La bibliothèque contient toutes les pages web utilisées pour construire les utilisateurs virtuels. Les paramètres de la page web comme la définition de la requête ou les assertions de contenu sont réglables dans la bibliothèque. Lorsqu'un enregistrement est en cours, toutes les pages enregistrées sont créées dans un conteneur dans la bibliothèque. Reportez vous à la section intitulée « Enregistrer un scénario » pour plus d'information.
Le panneau des serveurs permet de déclarer et modifier les serveurs web utilisés par le scénario. Les serveurs sont automatiquement créés à l'enregistrement du scénario. Les paramètres du serveur sont centralisés ce qui permet de changer rapidement le serveur cible du test. Par exemple, cela permet de changer rapidement du serveur de développement vers le serveur de pré-production.

Définition du serveur HTTP. Paramétrage du serveur.
Authentification. Permet de spécifier les comptes utilisateurs utilisés pour l'authentification au serveur. Les zones protégées (royaumes ou domaines) sont détectés à l'enregistrement et automatiquement ajoutées. Les comptes d'identification peuvent être dynamiques et changés pour chaque utilisateur simulé grâce aux variables.
Voir la section intitulée « Authentification » pour plus de détails sur l'authentification dans NeoLoad.
HTTP URL rewriting. Le suivi de session utilisateur est automatiquement gérées lorsque les cookies sont utilisés. Dans le cas de serveurs utilisant l'URL rewriting pour suivre la session utilisateur, l'argument de session doit être défini (ex: SESSIONID or JSESSIONID pour la plupart des serveurs). L'argument est automatiquement rempli lorsqu'il est détecté à l'enregistrement.
NeoLoad supporte les schémas d'authentification suivant:
Basic, Digest,
NTLM et Negotiate.
Le protocole SPNEGO gère le schéma Negotiate au
sein d'une communication HTTP. Lorsqu'ils utilisent SPNEGO, le
navigateur et le serveur négocient quel protocol sous-jacent utiliser:
Kerberos ou NTLM. Bien que Kerberos soit le protocole par défaut, si le
défaut échoue, SPNEGO essaie NTLM.
Noter que l' Authentification Windows Intégrée
de Microsoft IIS utilise Kerberos v5 et NTLM.
Pour des raisons de performance, NeoLoad n'utilise pas SPNEGO comme protocol par défaut pour Negotiate, mais utilise NTLM. En effet, la combinaison SPNEGO+Kerberos a un impact majeur sur les performances des injecteurs de charge. Lorsque SPEGNO+Kerberos est utilisé, l'injecteur peut générer beaucoup moins d'utilisateur virtuels simultanés.
Activer l'utilisation de SPNEGO n'est pas recommandé. Si cela est absolument nécessaire, suivre la procédure:
Procédure 8.1. Activer SPNEGO
Editer le fichier:
<neoload>/conf/controller.properties.
Changer la valeur de la clé:
[Authentication]scheme.negotiate.subprotocol=spnego.
(la valeur originale est ntlm)
Editer le fichier
<neoload>/conf/krb5.conf et déclarer le
Key Distribution Center (KDC) pour chaque Realm et chaque
domaine.
Certains serveurs gèrent plusieurs schémas d'authentification des
utilisateurs. NeoLoad utilise l'ordre suivant par défaut:
Negotiate, NTLM, Digest,
Basic. Cela reflète l'ordre utilisé par les
navigateurs web.
Dans certains cas, il peut être nécessaire de changer cet ordre:
Une page web représente une page telle qu'elle est affichée dans un navigateur. Elle est composée d'une page HTML et de sous composants comme des images ou des feuilles de style CSS.

Nom - Le nom de la page web dans NeoLoad.
URL - L'URL de la première requête HTTP qui compose la page est affichée ici pour information.
Description - Permet d'entrer facultativement une description de la page web.
Temps d'attente - Le temps d'attente est le temps de pause avant de jouer une page web, ce qui correspond au temps qu'il faut à un utilisateur réel pour lire une page reçue dans son navigateur avant de cliquer sur un lien. Réglez ici le temps d'attente pour cette page ou cliquez sur le raccourci vers le panneau de politique d'exécution pour régler le temps d'attente commun à toutes les pages. La politique par défaut est d'utiliser un temps d'attente commun à toutes les pages d'une durée de 3 secondes (utilisez le même raccourci pour changer la politique).
Copie d'écran de la page - La copie d'écran du contenu du navigateur au moment où la page a été enregistrée.
Notez que cette fonctionnalité n'est disponible que sous Windows. Elle doit être utilisée comme une indication permettant de se rappeler ce qui était affiché dans le navigateur quand la page a été enregistrée. Seules les pages ayant un contenu html ont des copies d'écran. Si la copie d'écran ne reflète pas la page réelle, vous pouvez l'effacer.
La prise de copie d'écran automatique à l'enregistrement peut
être désactivée en changeant la valeur de la clé
recorder.screenshot.enabled à false dans la
rubrique GUI du fichier de configuration
/conf/controller.properties.
Avancé - Paramètres avancés de la page.
Rejeu des requêtes - Par défaut, NeoLoad rejoue les requêtes selon la norme HTTP: un navigateur peut utiliser plusieurs connexions en parallèle pour obtenir les ressources liées à une page.
Pour certains besoins spécifiques, il est possible de forcer NeoLoad à rejouer les requêtes séquentiellement sur le serveur, dans l'ordre défini dans la bibliothèque.
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 trois manières de définir une requête:
Définition manuelle. une définition statique de la requête. Définir l'URL et les paramètres.
Redirection HTTP. 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 (par exemple: /searchresult.jsp?searchID=481825).
L'extracteur de Liens. Extrait et suit un lien vérifiant une définition dynamique. Il est aussi appelé extracteur de formulaire dans le cas de requêtes de type POST de formulaire. Cela doit être utilisé 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. L'extraction est basée sur des expressions régulières (regexp).
Un cas typique est celui où un ou plusieurs paramètres sont dynamiques. Utiliser le bouton "Rendre la valeur dynamique" pour créer la regexp par défaut.

".*" signifie n'importe quels caractères. Dans l'exemple
précédent, le premier lien rencontré qui ressemble à
/loadtest/search/index.jsp?searchID=<anyvalue>
va vérifier l'expression
régulière et sera extrait. Les expressions régulières
permettent de réaliser des extractions avancées.
Notez que tous les paramètres, ainsi que l'URL peuvent contenir des expressions régulières. En conséquence, les caractères réservés des expressions régulières doivent être échappés. Les caractères suivant doivent être échappés avec '\': [ ] ^ \ { } ( )
Lors de l'extraction d'un lien ou d'un formulaire, 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 votre application utilise souvent un même paramètre dynamique, vous pouvez 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 recherche dans les pages de réponse du serveur et ainsi d'augmenter les performances des injecteurs de charge.
Reportez vous à la documentation sur les extracteurs de liens et de formulaires pour plus d'information et pour des exemples.
![]() | Note |
|---|---|
Ce choix est désactivé dans l'interface graphique si le référant n'est pas défini. |
Des paramètres peuvent être définis pour n'importe quel type de
soumission de formulaires (POST, GET, HEAD, PUT...). Certains peuvent être
fixés à des valeurs statiques et d'autres à des valeurs dynamiques en
utilisant les variables. Lorsque les boites encoder
sont cochées, les valeurs spécifiées seront converties selon le format
MIME application/x-www-form-urlencoded avant d'être
soumises (encoder espace par %20 par exemple). Décocher la boite si le nom
ou la valeur sont déjà encodés.
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 :
https://jack:8443/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. Référez vous à 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.

Le champ nom de fichier représente le nom du fichier de la section. Les données du contenu de la section sont définies par le champ fichier source. Le fichier peut être défini avec un chemin absolu ou avec un chemin relatif au projet. Les fichiers sont automatiquement copiés sur tous les injecteurs de charge au lancement du test.

Les paramètres avancés:
Entêtes de Requête. les entêtes de requête HTTP. Il est possible de modifier des entêtes existants, d'en ajouter de nouveaux ou d'en supprimer. Une variable peut être utilisée comme valeur d'entête.
Paramètres Avancés.
Paramètre de requête. Spécifie si une requête envoyée doit contenir ou non
un caractère égal après le nom du paramètre si sa valeur est
vide (ex: il est possible de choisir une requête comme
/page.jsp?myparam= ou plutôt comme
/page.jsp?myparam).
Définition Avancée. Permet de configurer le
référant de
cette requête. Le référant est la requête contenant le lien
vers la requête courante. Par défaut le référant est calculé
durant la phase d'enregistrement. Vous pouvez changer le
référant, en cliquant sur le bouton Changer le
référant. Lors de la modification du référant, il
faut s'assurer que l'appel de la requête courante est bien
postérieur à l'appel du référant dans la définition des
utilisateurs virtuels.
Le référant est utilisé lorsqu'une requête est:
Un extracteur de lien ou de formulaire
Dans ce cas, NeoLoad va chercher la définition du lien ou du formulaire dans la réponse de la requête référant.
Si la requête est une redirection
Dans ce cas, NeoLoad va chercher la valeur du header
Location dans la réponse de la requête
référant.
Charset du formulaire. Indique le charset utilisé pour encoder les paramètres du formulaire (UTF-8, ISO-8859-1, ...). Par défaut, NeoLoad utilise un algorithme similaire à celui des navigateurs web pour savoir quel charset utiliser: NeoLoad utilise le charset de la page HTML contenant le formulaire. Si ce charset n'est pas trouvé, "iso-8859-1" est utilisé.
Ne pas confondre ce charset qui est utilisé pour
transformer les caractères en octets avec le simple
URL Encodage des caractères, c'est à dire
transformer par exemple le caractère espace en
%20. Pour être plus précis, l'
URL Encodage d'un caractère diffère selon
le charset utilisé.
Extracteurs de Variable. Extrait une chaîne à partir de la réponse à cette requête, et l'assigne à une variable. Voir la section intitulée « L'extracteur de Variable »
Requête enregistrée. Affiche pour information la requête soumise au serveur lors de l'enregistrement.
Réponse enregistrée. Affiche pour information la réponse retournée par le serveur lors de l'enregistrement.
Extrait une chaîne à partir de la réponse à cette requête, et l'assigne à une variable. Il existe deux modes d'utilisation de l'extracteur de variable: le mode Simple et le mode Avancé. Le mode simple vous aide à définir la chaîne à extraire, et le mode avancé vous permet de définir des extractions plus complexes en utilisant des expressions régulières.
Définition du mode Simple. Ce mode vous aidera à définir l'extracteur.

Nom de Variable. Le nom de la variable qui sera automatiquement créée et qui contiendra la valeur extraite.
Extraire depuis. Extraire la valeur depuis le corps de la réponse, depuis les entêtes de la réponse ou depuis le contenu d'une variable NeoLoad. Extraire une variable depuis le contenu d'une autre variable permet de faire une extraction en plusieurs étapes. Extraire en premier une partie de la réponse du serveur, puis utiliser une autre expression régulière pour en extraire une sous partie.
![]() | Note |
|---|---|
Les extracteurs sont ordonnés et exécutés dans l'ordre de la définition. Vous pouvez reordonner les extracteurs en utilisant les flèches. |
Commençant par. La phrase apparaissant dans la réponse juste avant la valeur à extraire.
Suivi de. La définition du corps principal de la chaîne. La chaîne extraite est la concaténation de toutes les parties sélectionnées pour l'extraction.
Terminant par. La phrase apparaissant dans la réponse juste après la valeur à extraire.
Occurrence à extraire de la page. Si la définition est vérifiée plus d'une fois, définir celle à utiliser. La valeur par défaut est 1 pour utiliser la première occurence mais vous pouvez choisir d'utiliser une occurrence choisie aléatoirement ou toutes les occurrences (utile dans les boucles, consultez Utiliser des occurrences multiple).
Note: En changeant vers le mode avancé, la conversion de la définition Simple en définition Avancée est automatique.
Définition du mode Avancé. L'extraction est effectuée en utilisant une expression régulière sur la réponse du serveur.

Nom de la variable. Le nom de la variable qui sera automatiquement créée et qui contiendra la valeur extraite.
Extraire depuis. Extraire la valeur depuis le corps de la réponse, depuis les entêtes de la réponse ou depuis le contenu d'une variable NeoLoad. Extraire une variable depuis le contenu d'une autre variable permet de faire une extraction en plusieurs étapes. Extraire en premier une partie de la réponse du serveur, puis utiliser une autre expression régulière pour en extraire une sous partie.
![]() | Note |
|---|---|
Les extracteurs sont ordonnés et exécutés dans l'ordre de la définition. Vous pouvez reordonner les extracteurs en utilisant les flèches. |
Expression régulière à vérifier. L'expression régulière utilisée pour extraire la valeur. L'expression doit contenir des parenthèses autour des parties à extraire. (valide: valeur="(.+?)", invalide: valeur=".+?"). Veuillez vous reporter au Guide des Expressions Régulières pour obtenir de l'aide sur ce sujet.
Occurrence à extraire de la page. Si la définition est vérifiée plus d'une fois, définir celle à utiliser. La valeur par défaut est 1 pour utiliser la première occurence mais vous pouvez choisir d'utiliser une occurrence choisie aléatoirement ou toutes les occurrences (utile dans les boucles), consultez Utiliser des occurrences multiples.
Modèle de valeur. Le modèle utilisé pour construire la valeur. C'est une
chaîne arbitraire avec des éléments spéciaux qui réfèrent aux
groupes dans l'expression régulière (un groupe est une partie
dynamique de l'expression régulière, entre parenthèses): $0$
réfère au texte entier vérifiant l'expression, $1$ réfère au
groupe 1, $2$ réfère au groupe 2, etc. Utiliser un identifiant
de groupe illégal causera une erreur de type
<NL-Illegal-groupIndex> pendant le
test. Cela arrive typiquement lorsque aucune parenthèse ne sont
définies dans l'expression régulière à vérifier.
Note: En changeant vers le mode simple, la conversion de la définition Avancée en définition Simple étant impossible, la dernière définition Simple est utilisée.
Exemples
Extraire du corps de la réponse. En considérant le contenu suivant: Votre numéro
de commande M. John est:12345; et que la chaîne à
extraire est '12345' qui doit être utilisée dans une requête
suivante.
Définir un extracteur de variable ainsi:
Nom de la variable: 'MaVariable' Extraire depuis: 'Corps du message' Expression régulière à vérifier: 'Votre numéro de commande(.+)? est:([0-9]+);' Numéro d'occurrence dans la page: '1' Modèle de valeur: '$2$' puisqu'il faut extraire le numéro de commande et non pas le nom de la personne. Utiliser $1$ pour obtenir le nom. ($0$ ramènerait tout le texte vérifié: 'Votre numéro de commande M. John est:12345;') Valeur par défaut: '-1' par exemple.
Extraire depuis l'entête de la réponse:
Extraire depuis: 'Entête' Expression régulière à vérifier: 'MonEntête: (.*)' Numéro d'occurrence dans la page: '1' Modèle de valeur:'$1$'
Test. Ce panneau permet de tester l'extracteur de variable. Entrer
le texte correspondant à la réponse du serveur dans la zone de
texte. La valeur du champ "valeur extraite de cette
page" contient la valeur qui sera extraite de cette
page.

Erreur. Ce panneau permet de définir la valeur par défaut à utiliser lorsque la définition n'est pas vérifiée dans la réponse du serveur. Par défaut, une assertion échoue lorsque la définition n'est pas vérifiée, ce qui permet de traiter cette requête comme une erreur dans les résultats de test.

Utiliser les occurrences multiples. Lorsque le numéro d'occurrence est négatif, toutes les occurrences vérifiées sont traitées. Les variables suivantes sont automatiquement créées:
<nomDeVariable>_matchNr - le nombre
d'occurrences trouvées; peut être 0.
<nomDeVariable>_n, où n = 1,2,3 etc
- les chaînes générées suivant le modèle de valeur.
<nomDeVariable>_n_gm, où m=0,1,2 -
les groupes vérifiant n
<nomDeVariable> - toujours fixée à
la valeur par défaut
Contenu de réponse. Le contenu de la réponse du serveur. Seul le contenu text (text/html,text/xml,...) est disponible.
Permet d'ajouter des assertions sur les réponses. Le contenu retourné par le serveur peut être traité comme une erreur suivant les critères suivants: la durée, la taille de la page ou le contenu de la page.

Définir les longueurs minimum et maximum du contenu du corps de la réponse. La longueur des entêtes HTTP n'est pas prise en compte. La longueur par défaut est celle du contenu de la réponse lors de l'enregistrement. "Plus grand que" signifie plus grand que ou égal, et "Plus petit que" signifie plus petit que ou égal.
Cela permet de vérifier que la réponse contienne ou ne contienne pas un certain contenu. La réponse est composée des entêtes et du contenu de la réponse HTTP. La réponse est considérée comme valide si toutes les conditions de contenu sont satisfaites.
Les types de condition disponibles sont:
contient: vérifie si le corps
de la réponse contient le texte défini. (Exemple: "<span
class="welcome">Bienvenue</span>")
contient l'expression
régulière: vérifie si le corps de la réponse contient
l'expression régulière définie. (Exemple: "<span
class="welcome">Bienvenue \w+ \w+
</span>")
Notez que l'assertion de contenu peut utiliser des variables.
Veuillez vous reporter au Guide des Expressions Régulières pour obtenir de l'aide sur les expressions régulières.
Pour retrouver facilement et rapidement vos requêtes personnalisées, NeoLoad peut afficher un signe sur l'icône de l'action dans l'arbre.
Les requêtes personnalisées sont celles qui utilisent une validation de réponse, un extracteur de variable, un extracteur de lien/formulaire. De même, il est possible de signaler toutes les requêtes de type formulaire POST, toutes celles utilisant des paramètres ou celles contenant un texte spécifique.
Lors de la recherche de texte dans la definition de la requête, NeoLoad inspecte le chemin, les paramètres, les entêtes, les noms des Extracteurs de variables ainsi que les validations de contenu.
Procédure 8.3. Pour configurer la politique de signalisation des requêtes
Cliquer sur le noeud "bibliothèque" dans l'arbre.
Le panneau à droite de l'arbre affiche une partie intitulée "marqueurs".
Choisir le type de requêtes à signaler.

Pour retrouver facilement et rapidement vos requêtes et vos pages dans les résultats du test courant ou dans le panneau de validation d'un utilisateur virtuel, vous pouvez utiliser les raccourcis depuis l'arbre de la bibliothèque.
Notez que le raccourci ne fonctionnera que si une validation d'utilisateur virtuel ou un scénario contenant cette requête ou page a été joué auparavant dans le projet.
Procédure 8.4. Pour utiliser un raccourci depuis la bibliothèque
Cliquer droit sur le noeud de la requête ou de la page de votre choix dans l'arbre.
Une fenêtre contextuelle apparaît.
Choisir entre voir la requête dans les résultats ou dans le panneau de validation d'un utilisateur virtuel.

Neoload permet de modifier toutes les requêtes de la bibliothèque
qui correspondent à une recherche. Cette fonctionnalité est accessible
depuis le menu Edition ou depuis le menu contextuel de
l'arbre de la bibliothèque et est accompagnée d'un assistant qui permet
d'effectuer le remplacement.
Cette recherche peut s'effectuer soit dans les paramètres, dans les URLs, ou les entêtes.

Dans le cas des entêtes ou des paramètres la recherche peut s'effectuer de trois façon différentes :
Recherche dans les noms et les valeurs: la chaîne sera recherchée à la fois dans les noms et dans les valeurs des entêtes/paramètres et sera modifiée par la chaîne de remplacement.
Recherche dans les noms : la chaîne est recherchée exclusivement dans les noms et la valeur des entêtes/paramètres sera modifiée par la chaîne de remplacement.
Suppression : la chaîne est recherchée dans les noms des entêtes/paramètres et ceux-ci sont supprimés.

L'assistant demande alors d'entrer la chaîne à rechercher et la chaîne de remplacement. On peut utiliser une expression régulière comme chaîne de recherche/remplacement, pour cela il faut cocher "Rechercher en tant qu'expression régulière" (vous pouvez consulter le Guide des Expressions Régulières).

Après avoir entré les informations requises l'assistant vous demande
une dernière confirmation avant de lancer la recherche. Vous pouvez alors
vérifier vos paramètres et les modifier en cliquant sur
précédant.

Cliquer sur terminer ferme l'assistant et lance la recherche.
Dans le cas où il n'y a pas de résultats, une popup vous invite à modifier vos paramètres de recherche.

Sinon une popup permettant de naviguer dans les résultats apparait. Les résultats sont marqués dans l'arbre de la bibliothèque et vous êtes immédiatement positionné sur la première occurence de la recherche.


Les boutons "Suivant" ou
"Précédent" permettent de naviguer dans les
résultats. Le texte qui sera modifiée est alors surligné:

Si vous sélectionnez d'autres actions dans l'arbre, le bouton
"Actuel" permet de revenir à tout moment sur
l'élément courrant.
Le bouton "Remplacer" effectue le
remplacement de la chaîne surlignée par la valeur affichée dans la
popup. Si vous avez remplacé tous les éléments trouvés, la popup se
ferme et une boîte de dialogue vous informe qu'il n'y a plus de
résultats.
Le bouton "Remplacer tout" remplace tous les
éléments trouvés. Une boîte de dialogue vous indique alors le nombre
de remplacement effectués.
L'extracteur de Liens et de Formulaires permet de rechercher et d'extraire un lien ou un formulaire d'une requête HTML précédente. Cela permet de prendre en compte facilement les paramètres dynamiques générés par le serveur.
Se reporter au guide des Expressions Régulières pour plus d'information sur les expressions régulières.
Dans ce mode, le chemin de la requête est interprété comme une expression régulière utilisée pour retrouver le lien dans la page. Avant de jouer la requête, NeoLoad remplace les valeurs dynamiques de la définition par les valeurs extraites du lien correspondant dans la page précédente (référant). Les expressions régulières sont de type Perl.
Les paramètres de requête interprétés comme des expressions régulières sont: le chemin, les paramètres de requête (nom et valeur) et le serveur. Si le nom du serveur est dynamique, créer un serveur dans NeoLoad dont le nom machine est l'expression régulière à rechercher dans la page.
Si plusieurs liens correspondent à la définition, alors NeoLoad en utilise un au hasard.
Note:
Le parseur de lien recherche des liens de la forme
<a href="http://mydomain/mypath"></a>
et prend en compte la base d'URL (<a
base="mybaseUrl"></a>).
Les caractères réservés doivent être échappés dans la définition de l'extracteur de lien. Les caractères suivants doivent être échappés par '\': [ ] ^ \ { } ( ) .
Une fois le lien trouvé, il est possible de mettre la valeur des
paramètres dans une variable NeoLoad. Pour cela, il
suffit de rentrer le nom de la variable dans la colonne Extraire
dans la variable du tableau des paramètres (cette colonne est
visible uniquement en mode extracteur de lien).
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 à:

Si vous lancez le 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>
Changeons donc cette requête manuelle en Extracteur de lien:

Dans l'exemple, la valeur du searchID a été positionnée à ".*" qui signifie que le searchID peut prendre toute forme de valeur.
Le paramètre "page" peut aussi être positionné à ".*" ou"\d" (pour un seul chiffre). Alors, si vous avez différents liens comme:
Alors tous ces liens correspondront à la définition et NeoLoad en choisira un au hasard.<a href="http://ServerHostname/search.php?searchID=<mygoodsearchid>&page=2">page2</a><a href="http://ServerHostname/search.php?searchID=<mygoodsearchid>&page=3">page3</a><a href="http://ServerHostname/search.php?searchID=<mygoodsearchid>&page=4">page4</a>
Le type de requête Extracteur de formulaires
permet de retrouver un formulaire dans la page HTML précédente, et de le
rejouer.
Les paramètres de requête interprétés comme des expressions régulières sont: le chemin, les paramètres du formulaire (nom et valeur) et le serveur. Si le nom du serveur est dynamique, créer un serveur dans NeoLoad dont le nom machine est l'expression régulière à rechercher dans la page.
Si plusieurs formulaires correspondent à la définition, alors NeoLoad en utilise un au hasard.
Note: Les caractères réservés doivent être échappés dans la définition de l'extracteur de formulaire. Les caractères suivants doivent être échappés par '\': [ ] ^ \ { } ( ) .
Une fois le formulaire trouvé, il est possible de mettre la valeur
des paramètres dans une variable NeoLoad. Pour cela, il
suffit de rentrer le nom de la variable dans la colonne Extraire
dans la variable du tableau des paramètres (cette colonne est
visible uniquement en mode extracteur de formulaire).
Considérons une application avec un formulaire de recherche tel que celui-ci:
<form name="searchform" method="POST" action="search.php"> <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 à:

Si vous lancez le 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 extracteur de formulaire:

Utiliser ".*" comme valeur pour computedValue permet d'extraire la valeur générée par le serveur.
De plus, utiliser ".*" 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 vous permet pas seulement d'extraire des valeurs dynamique générées par le serveur mais permet aussi d'utiliser les différent choix du formulaire.
La notion de paramètre dynamique dans NeoLoad représente les paramètres générés dynamiquement par le serveur et utilisés dans plusieurs requêtes d'un scénario. Ce type de paramètre peut être utilisé par exemple pour gérer les sessions utilisateur, ou conserver l'état de la navigation à un moment donné. Ces paramètres calculés par le serveur peuvent être insérés dans un champ caché d'un formulaire, ou dans un paramètre d'URL sans intervention de l'utilisateur.
Lors d'un test en charge, NeoLoad simule des centaines d'utilisateurs sur l'application, et chacun d'eux doit pouvoir utiliser la valeur du paramètre généré par le serveur, et non pas la valeur enregistrée lors de la création du scénario. Afin de gérer les paramètres dynamiques, il faut typiquement extraire la valeur générée par le serveur grâce à un extracteur de variable, puis la réinjecter dans les requêtes suivantes en lieu et place de la valeur enregistrée. Cela est tout a fait possible pour un paramètre dynamique isolé, mais peut devenir fastidieux pour un paramètre dynamique intervenant dans de nombreuses requêtes (nombreux remplacement dans la définition des requêtes), ou changeant de valeur régulièrement (nombreux extracteurs de variable à créer).
Afin de faciliter la gestion de ces paramètres, NeoLoad propose deux processus permettant de configurer facilement les paramètres dynamiques de l' application.
La recherche des paramètres dynamiques est un processus pouvant être exécuté après un enregistrement (assistant de fin d'enregistrement), ou sur chaque utilisateur virtuel.
Pour lancer la recherche des paramètres dynamiques sur un utilisateur virtuel:
Sélectionner le mode Conception
Sélectionner l'onglet Utilisateurs virtuels
Sélectionner un utilisateur virtuel dans l'arbre des profils d'utilisateurs virtuels
Cliquer sur le bouton Recherche
L'assistant de recherche des paramètres dynamiques s'affiche alors, proposant d'exécuter les deux types de recherche de paramètre dynamique de NeoLoad:
Recherche des paramètres dynamiques de framework
Recherche des paramètres dynamiques génériques

Dans le cas de framework bien spécifique au développement d'une application, les paramètres dynamiques générés par le serveurs sont souvent les mêmes, et sont utilisés dans de nombreuses requêtes. Afin d'éviter de définir des extracteurs de variables sur de nombreuses requêtes, puis de définir l'utilisation de ces variables dans la définition des requêtes, NeoLoad vous propose de chercher ces paramètres pour vous et de configurer les extracteurs/remplacements de variable dans le scénario.
Afin que NeoLoad puisse faire une recherche de paramètres
dynamiques de framework, il faut préalablement définir les paramètres
dynamiques générés par votre framework. La définition des paramètres
dynamiques de framework s'effectue dans le menu Edition /
Préférences / Paramètres dynamiques.
La définition d'un paramètre dynamique de framework comprend:
Activé: doit être coché pour que NeoLoad
recherche ce paramètre dynamique
Nom du paramètre: le nom du paramètre tel
qu'il apparaît dans les requêtes (nom du champ caché du formulaire,
ou nom du paramètre dans l'URL)
Framework: le nom du framework. Ce
paramètre est optionnel, il permet de visualiser après une recherche
de paramètre dynamique les différents paramètres trouvés
Expression régulière: l'expression
régulière que doit utiliser NeoLoad pour chercher ce paramètre
dynamique dans les réponses du serveur
Modèle: Le modèle à appliquer à
l'expression régulière pour en extraire la valeur du paramètre
dynamique (voir Extraction de
variable).
Afin de créer un nouveau paramètre dynamique de framework,
entrer directement sa définition dans le tableau du menu
Edition / Préférences / Paramètres dynamiques mais la
manière la plus simple est de définir un extracteur de variable et de le
convertir en paramètre dynamique de framework.
La manière la plus simple pour définir un paramètre dynamique de framework est de positionner un extracteur de variable sur une des requêtes dont la réponse du serveur contient ce paramètre dynamique, puis de convertir cet extracteur en paramètre dynamique de framework:
Dans la bibliothèque, sélectionner une requête dont la réponse du serveur contient le paramètre dynamique
Cliquer sur le bouton Avancé
Sélectionner l'onglet Extracteurs de
variable
Cliquer sur le bouton + pour ajouter un extracteur de variable
Définir un extracteur de variable permettant d'extraire la valeur dynamique (donner à la variable le nom du paramètre dynamique)
Dans la liste des extracteurs de variable sélectionner l'extracteur venant d'être créé
Cliquer sur le bouton Déplacer dans les paramètres
de framework
Enter le nom du paramètre, et le nom du framework
Lancer la recherche de paramètre dynamique afin que NeoLoad puisse définir les autres extracteurs nécessaires et remplacer la valeur du paramètre par la variable extraite
Cet extracteur a alors été ajouté à la liste des paramètres de framework, et lors des prochaines recherches des paramètres dynamiques (après le prochain enregistrement par exemple) NeoLoad sera capable de configurer les extracteurs automatiquement et de remplacer la valeur statique dans les requêtes par la variable extraite.
L'utilisation d'un extracteur de variable pour ajouter un paramètre dynamique de framework permet de configurer facilement l'expression régulière et le modèle à appliquer pour trouver ce paramètre.
Le processus de recherche des paramètres dynamiques génériques dans NeoLoad est entièrement automatique. Ce processus permet à NeoLoad de rechercher les paramètres dynamiques dans votre application et de modifier votre scénario en conséquence.
Lors de l'enregistrement de votre scénario de test, NeoLoad enregistre toutes les requêtes HTTP/S envoyées par le navigateur au serveur. Lors de cet enregistrement, NeoLoad va enregistrer la valeur courante de tous les paramètres envoyés par le navigateur au serveur.
Grâce à la recherche des paramètre dynamiques génériques, NeoLoad va pouvoir essayer d'analyser votre scénario pour y trouver des paramètres dynamiques. Pour cela, NeoLoad va rejouer votre scénario avec les paramètres enregistrés, et va avant de jouer la page suivante essayer de trouver le lien correspondant à cette page dans la réponse du serveur. Si ce lien existe, c'est que tous les paramètres sont identiques entre l'enregistrement et le moment ou NeoLoad rejoue le scénario et qu'il n'y a donc pas de paramètre dynamique pour cette requête. Si ce lien n'existe pas, c'est que probablement la valeur d'un paramètre a changé entre l'enregistrement et le moment où NeoLoad rejoue le scénario. NeoLoad va alors analyser la page de réponse du serveur pour trouver quel paramètre n'a pas la même valeur, et configurer le scénario pour gérer ce paramètre.
Lors de la gestion des paramètres dynamiques, NeoLoad va utiliser les extracteurs de lien/formulaire pour gérer chaque paramètre dynamique.
Prenons l'exemple d'une application avec un paramètre dynamique
id calculé par le serveur et ajouté comme paramètre
aux liens d'une page. Les liens dans la réponse du serveur ressemblent
à:
<a href="viewCategory.shtml?categoryId=BIRDS&id=1181639214472">BIRDS</a> <a href="viewCategory.shtml?categoryId=FISH&id=1181639214472">FISH</a> <a href="viewCategory.shtml?categoryId=DOGS&id=1181639214472">DOGS</a> <a href="viewCategory.shtml?categoryId=REPTILES&id=1181639214472">REPTILES</a> <a href="viewCategory.shtml?categoryId=CATS&id=1181639214472">CATS</a>
Le paramètre id étant dynamique, il va prendre
une valeur différente lors de l'exécution de chaque utilisateur virtuel.
Après l'enregistrement de cette page, NeoLoad crée une requête
comprenant la valeur du paramètre lors de l'enregistrement:

Lors de la recherche des paramètres dynamiques, NeoLoad ne va pas
réussir à trouver ce lien exact dans la réponse du serveur, mais
trouvera un lien identique avec une nouvelle valeur du paramètre
id. Ainsi, lors d'une recherche des paramètres
dynamiques, NeoLoad vous proposera de gérer ce paramètre dynamique de
votre scénario:

Une fois les modifications proposées appliquées au scénario, voici la nouvelle définition de la requête gérant ce paramètre dynamique:

Dans cette définition modifiée, NeoLoad a transformé la définition
manuelle de la requête en extracteur de lien, en positionnant le
paramètre id comme dynamique (valeur
.*). De plus NeoLoad mettra la valeur de ce paramètre
dynamique dans la variable id lors de l'exécution du scénario, cette
variable pouvant être utilisée plus loin dans le scénario.
Ce système à des limites quand NeoLoad n'est pas capable d'analyser suffisamment la réponse du serveur pour y trouver le paramètre qui a changé. Par exemple, si ce paramètre générique est calculé dans du code javascript, alors NeoLoad ne sera pas capable de le trouver.
Afin de gérer ces cas complexes il vous faudra alors utiliser un autre processus permettant de gérer les paramètres génériques de framework.
Le module optionnel SOAP de NeoLoad permet de tester en charge les services Web au travers du protocole SOAP.
NeoLoad a deux modes de fonctionnement:
Déclarer puis entrer les paramètres d'appels de la requête (manuellement ou à partir d'un fichier de description WSDL)
Enregistrer puis modifier les paramètres d'une requête jouée par un client existant.
Cette section décrit comment créer de toute pièce une requête SOAP. Se reporter à la section suivante pour enregistrer une requête d'un client existant.
Procédure 8.5. Créer une requête SOAP dans la bibliothèque de NeoLoad
Cliquer sur l'onglet bibliothèque de la
partie Conception.
Cliquer au bouton droit sur le noeud
bibliothèque et sélectionner Ajouter /
Nouvelle Requête SOAP. Il est aussi possible de créer une
requête SOAP en cliquant le bouton "Nouvelle Requête
SOAP" du panneau du noeud
bibliothèque.
Suivre l'assistant et choisir le mode d'édition des paramètres:

Créer a partir d'un fichier descriptif WSDL:
Entrer l'URL d'accès au WSDL. Utiliser le sélecteur de
fichier pour utiliser un fichier du disque, ou entrer l'URL
d'accès à un serveur web, par exemple
http://myserver/app/myservice?WSDL.
Choisir la méthode (ou opération) à tester dans la liste déroulante.
Choisir un nom pertinent pour nommer la requête SOAP.
Entrer l'URL d'accès au service web ("End point"). L'URL définie dans le WSDL est affichée par défaut.
Créer pour une édition manuelle de la requête XML.
Choisir un nom pertinent pour nommer la requête SOAP.
Entrer l'URL d'accès au service web ("End point").
Cette section décrit comment enregistrer l'interaction entre un client SOAP existant et le serveur de services web.
Procédure 8.6. Enregistrer une requête SOAP.
Modifier les paramètres du client SOAP afin qu'il utilise NeoLoad comme proxy:
hostname: nom ou adresse IP de la machine ayant le contrôleur NeoLoad de lancé.
port: port de l'enregistreur HTTP de
NeoLoad, 8090 par défaut. Ce paramètre est
modifiable dans les préférences de NeoLoad.
Pour Axis: Positionner les propriétés systèmes
http.proxyHost et
http.proxyPort.
Par exemple, placer le code suivant dans votre code:
System.setProperty("http.proxyHost", "localhost");
System.setProperty("http.proxyPort", "8090");ou modifier la ligne de commande:
java -Dhttp.proxyHost=localhost -Dhttp.proxyPort=8090 ...
Pour .Net. Il est possible de modifier le fichier de configuration
<configuration>
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "false"
proxyaddress="http://localhost:8090"
bypassonlocal="true"
/>
</defaultProxy>
</system.net>
</configuration>Pour plus d'information, voir http://support.microsoft.com/default.aspx?scid=kb;[LN];318140
Lancer NeoLoad
Lancer un enregistrement (Voir la section intitulée « Enregistrer un scénario »). Puisque l'enregistrement ne
nécessite pas de navigateur, il est préférable de décocher l'option
"Démarrer le navigateur".
Lancer votre client SOAP. Puisque celui-ci est configuré pour utiliser l'enregistreur NeoLoad comme proxy, NeoLoad enregistre la requête.
Arrêter l'enregistrement.
Description du panneau d'édition des requêtes SOAP:

Nom. Nom de la requête
Description. Note facultative sur cette requête.
URL. URL, non éditable, d'accès au service Web.
Serveur. Nom du serveur d'accès au service Web.
Chemin. Chemin d'accès au service Web, relatif au serveur sélectionné.
WSDL. URL d'accès au WSDL. Pour un fichier sur disque il s'agit
d'une URL de la forme file:/C:/... Utiliser le
sélecteur de fichier. Pour un fichier online, utiliser l'habituel
http://myserver/myapp/myservice?WSDL.
Le bouton Recharger permet de recharger le
WSDL, puis de choisir une méthode parmi celles définies dans le
WSDL. Cela redéfinit les paramètres de la requête. Après
confirmation, les paramètres existants de la requête seront
supprimés.
Mode d'édition.
Mode Paramètres (du WSDL)
Ce mode est disponible si un fichier WSDL a été défini. Il permet de se baser sur la définition du WSDL pour entrer les paramètres d'appel. Voir la section intitulée « Editer les paramètres extraits du WSDL ».
Mode XML
Ce mode permet d'éditer directement la requête au format XML. Voir la section intitulée « Editer le contenu XML ».
Méthode. Méthode SOAP à appeler, non éditable directement. Le bouton
Recharger permet de choisir une autre méthode,
disponible uniquement si un WSDL a été spécifié.
Contenu. Editer les paramètres WSDL ou le contenu XML selon le mode d'édition choisi.
Test. Permet de tester rapidement l'appel de la requête. Cliquer
sur le bouton "Valider" génère un Utilisateur
Virtuel temporaire contenant la requête éditée, puis lance la
validation de cet Utilisateur Virtuel.
![]() | Note |
|---|---|
Les boutons " |

Lors du chargement du fichier WSDL, NeoLoad génère une arborescence par défaut de paramètres et des entêtes SOAP. Les paramètres optionnels peuvent être supprimés, et d'autres paramètres peuvent être ajoutés si la description WSDL l'autorise.
L'onglet paramètres permet d'éditer,
supprimer ou d'ajouter des paramètres.
L'édition des paramètres reflète les contraintes décrites dans le WSDL.
Il y a deux types de paramètres:
les éléments feuille comme une valeur
texte ou numérique dont la valeur peut être éditée.
Cette valeur peut être une valeur littérale ou une
variable. L'encodage permet d'encoder les caractères réservés
comme '>' et '<'. Dans le cas d'une variable, il est
possible de décocher l'option "encoder la
valeur" si la valeur de la variable est déjà
encodée.
Le type affiché de la valeur est le
type au sens WSDL, par exemple
{http://www.w3.org/2001/XMLSchema}string. Il
est de la responsabilité de l'utilisateur de respecter la
syntaxe du type de la valeur.

les éléments conteneur qui contiennent
d'autres éléments.
les éléments de type sequence
contiennent d'autres éléments dans un ordre spécifique et
avec la cardinalité décrite dans le WSDL. Par exemple, la
sequence S doit contenir de zéro à
trois élément A et au moins un élément B, dans cet
ordre.
les éléments de type All
contiennent d'autres éléments une et une seule fois, dans
un ordre indéterminé.
les éléments de type Choice
contiennent un seul élément fils, parmi les différents
éléments fils autorisés.
Les contraintes des éléments conteneur
sont affichées pour information dans le bas du panneau d'édition
de ces conteneurs (section "Elements
fils").

Pour ajouter un élément fils à
un conteneur utiliser le bouton '+' ou utiliser le
bouton droit avec "Ajouter". Dans les deux cas, la
liste des éléments à ajouter est restreinte aux éléments fils
autorisés par le WSDL. L'élément est automatiquement inséré à
l'endroit approprié au sein des autres éléments fils en cas de
contrainte d'ordre.
Pour supprimer un élément fils
d'un conteneur utiliser le bouton '-' ou utiliser
le bouton droit avec "Supprimer".
Pour déplacer un élément fils
au sein d'un conteneur utiliser le bouton de
déplacement approprié ou le bouton droit avec
"Monter" ou "Descendre".
![]() | Note |
|---|---|
Si une contrainte du WSDL sur le
|
Utiliser" permet d'ajouter l'attribut sélectionné
au paramètre. Entrer une valeur dans la colonne
valeur ajoute automatiquement l'attribut aux
paramètres. Il n'est pas possible d'ajouter des attributs non prévus
par le WSDL.L'onglet entête permet de paramétrer les entêtes SOAP déclarées dans le WSDL.
Cette partie a un fonctionnement similaire à la partie
paramètres.

Entêtes SOAP qui permet de définir l'attribut
"Actor" du protocole SOAP.Cet onglet permet de définir deux paramètres:
le style du message. Les
styles supportés sont: RPC/Encoded,
RPC/literal,
Document/literal et Wrapped
Document/literal. Le style sélectionné est celui
déclaré dans le WSDL. Ce paramètre ne doit pas être modifié en
temps normal car le web service s'attend à être contacté avec un
style prédéterminé (celui du WSDL).
le format d'encapsulation
des attachements binaires: MIME ou
DIME. Comme pour le style du message, ce
paramètre est extrait du WSDL et ne doit pas être modifié en
temps normal.
L'aperçu XML permet de prévisualiser le corps XML de la requête tel qu'il sera généré. L'aperçu n'est pas éditable et ne comprend que le corps XML du message (pas les attachements binaires) en cas d'attachement.
Effectuer une validation de la requête pour avoir un aperçu de l'intégralité de la requête HTTP.
Si le fichier WSDL n'est pas défini ou si l'édition des paramètres WSDL ne peut être utilisée, il est possible de définir manuellement le corps XML du message.
Pour cela éditer le texte XML ou éditer l'arbre XML.

Cet onglet permet d'éditer le texte XML.
![]() | Astuce |
|---|---|
Utiliser le click droit ou taper 'Ctrl-F' pour effectuer une recherche. |
Cet onglet permet d'éditer les noeuds de l'arbre XML dans vue arborescente. Cette vue est particulièrement adaptée pour utiliser des variables grâce au sélecteur de variables.
Lorsque la valeur d'un noeud contient une variable, il est
possible de ne pas l'encoder au sens XML si elle est déjà encodée.
Dans ce cas, NeoLoad ajoutera l'attribut
NeoLoad-encode="false" au noeud correspondant,
visible dans le vue Texte XML. Cet attribut
supplémentaire sera supprimé lors du test au moment de l'encodage XML
et ne sera pas envoyé au serveur.
Cet onglet permet d'obtenir un aperçu en lecture seule du corps de la requête qui sera envoyé.
Les variables sont interprétées et les retours chariots supprimés (voir l'astuce ci-dessous).
![]() | Astuce |
|---|---|
La requête ne contient aucun retour chariot afin d'être plus
compacte lors du test, utiliser le bouton droit " |
L'entête HTTP nommé SOAPAction est requise par
SOAP 1.1. Cette entête est ajoutée automatiquement avec la valeur
appropriée au moment du chargement du WSDL, ou enregistrée en cas de
d'enregistrement de la requête.
Editer les entêtes HTTP de la requête pour modifier cette valeur.
Pour cela, cliquer sur le bouton "Avancé..." et
sélectionner l'onglet "Entête de requête".
Utiliser le bouton Valider de la section
test pour tester la requête courante.
NeoLoad crée un Utilisateur Virtuel temporaire comprenant uniquement
la requête, puis lance la fenêtre de validation de cet utilisateur
virtuel. Cliquer sur le bouton Lancer la
Validation.
La section détail permet d'accéder au détail de la requête envoyée, au détail de la réponse du serveur ainsi qu'aux messages des assertions.
![]() | Astuce |
|---|---|
Utiliser au click droit " |