Exemple de corrélation dans LoadRunner avec web_reg_save_param
⚡ Résumé intelligent
La corrélation dans LoadRunner capture une valeur serveur dynamique, telle qu'un ID de session, et la réinjecte dans les requêtes ultérieures afin qu'un script VuGen enregistré soit rejoué avec succès au lieu d'échouer sur des données obsolètes.
Qu'est-ce que la corrélation ?
La corrélation, comme son nom l'indique, est un mécanisme permettant de définir une relation entre deux variables ou entités. Un dictionnaire la définit comme « une relation statistique entre deux ou plusieurs variables telle que des variations systématiques de l'autre variable s'accompagnent de variations systématiques de la valeur de l'une d'entre elles ».
Note de la marque : Cet outil a été commercialisé sous la marque HP, puis Micro Focus LoadRunner, et est maintenant OpenText Ingénierie de la performance professionnelleToutes les fonctions de corrélation ci-dessous restent inchangées, et le fournisseur spécifie le générateur de scripts. VuGen.
Pourquoi avons-nous besoin d’une corrélation ?
Essayons de comprendre la corrélation à l'aide du scénario suivant.
Imaginez que vous enregistrez un script en utilisant LoadRunner.
La communication client-serveur pendant l'enregistrement se déroule comme suit, et le diagramme la résume :
- Lors de l'enregistrement, le client envoie une requête au serveur pour démarrer une session.
- Un serveur reçoit la requête et attribue un nouvel ID de session ABC
- Le client stocke l'identifiant de session ABC dans le script.
- Le client démarre la session avec l'identifiant ABC et envoie une requête à un serveur pour l'autoriser à enregistrer.
- Le Serveur reconnaît l'ID ABC et permet au client d'enregistrer le script
À présent, étudions la communication client-serveur pendant la relecture, illustrée après ces étapes :
- Pendant le Replay, un client envoie une requête au serveur pour démarrer une session
- Un serveur reçoit la demande et attribue un nouvel ID de session XYZ
- Un client démarre la session avec l'identifiant de session précédemment enregistré ABC et envoie une requête au serveur pour l'autoriser à enregistrer.
- Un serveur n'est pas en mesure d'identifier l'ID ABC car il s'attendait à l'ID XYZ qu'il a alloué et la session échoue.
Nous avons besoin d'une solution capable de capturer et d'analyser la valeur dynamique envoyée lors de l'exécution, puis de la renvoyer au serveur. Voici à quoi ressemblera la communication client-serveur avec cette solution, comme le montre le schéma ci-dessous :
- Pendant le Replay, un client envoie une requête au serveur pour démarrer une session
- Un serveur reçoit la requête et attribue un nouvel ID de session ZZZ
- Un client analyse ce nouvel identifiant de session ZZZ à partir de la demande.
- Un client envoie une demande de démarrage de session avec l'identifiant ZZZ
- Un serveur reconnaît l'ID ZZZ et permet au client de rejouer le script
Ce n'est rien d'autre que corrélation.
La courte vidéo ci-dessous illustre ce même problème d'enregistrement et de relecture.
Cliquez à nouveau ici si la vidéo n'est pas accessible
Dans le cas de VuGen, la corrélation est une relation contraignante entre une réponse et toute requête précédente.
Il existe diverses situations où une requête dépend d'une réponse précédemment reçue du serveur, comme un identifiant de session ou la date et l'heure du serveur. Ces valeurs changent à chaque exécution d'une application ou enregistrement d'un script. Si l'exécution du script dépend d'une valeur renvoyée par le serveur, il est nécessaire de trouver un mécanisme permettant de « capturer » cette réponse et de l'associer aux requêtes attendues. Dans LoadRunner, cette fonctionnalité est généralement appelée corrélation.
En termes simples, la solution en utilisant la corrélation est :
- Capturer la valeur de sortie d'une étape
- Utiliser la valeur capturée ci-dessus pour servir d'entrée à toutes les étapes suivantes
Dans VuGen/LoadRunner, la corrélation est classée en 2 catégories :
- Corrélation automatique
- Corrélation manuelle
Corrélation automatique
LoadRunner fournit un mécanisme permettant d'effectuer facilement une corrélation de manière automatique.
VuGen vous demandera d'exécuter un script enregistré au moins deux fois afin de pouvoir comparer en interne les différentes valeurs de la réponse du serveur.
La corrélation automatique peut être classée en 3 catégories :
- Détection automatique de la corrélation
- Corrélation basée sur des règles
- Corréler toutes les déclarations
| Nom de la règle | Quand utiliser |
| Détection automatique de la corrélation | Détecter et corréler les données dynamiques pour les serveurs d'applications pris en charge par LoadRunner |
| Basé sur des règles | Utilisé lorsque vous travaillez avec un serveur d'applications non pris en charge dont le contexte est connu. |
| Tout corréler | Aide à corréler toutes les données dynamiques de manière aveugle. |
Bien que la corrélation automatique semble plus simple, elle peut être sujette à des erreurs et ne fonctionne que dans 5 % des cas. Il est toujours conseillé d'utiliser une corrélation manuelle.
Pour configurer la corrélation automatique au moment de l'enregistrement, effectuez la configuration ci-dessous dans Paramètres de durée d'enregistrement après l'enregistrement d'un script.
Cliquez sur Enregistrer => Options d'enregistrement (ou appuyez sur Ctrl + F7), comme indiqué dans le menu ci-dessous.
La fenêtre ci-dessous s'ouvrira :
Cliquez sur Corrélation =>Configuration – la fenêtre ci-dessous s'ouvrira.
Ici, vous devez marquer comme vérifié par rapport à toutes les applications (ASPNET), etc., qui sont utilisées dans votre application en question. Sur le côté droit, vous pouvez voir les règles qui détecteront les candidats possibles pour la corrélation, par exemple _VIEWSTATE. Vous pouvez également ajouter plus d'applications ou de règles personnalisées en cliquant sur le bouton Nouvelle règle.
Vous pouvez également cliquer sur RÈGLES, vous verrez comme ci-dessous :
Pour que la corrélation automatique fonctionne, assurez-vous que l'option « Analyse des règles » est cochée. Si vous cliquez sur « Corréler automatiquement les valeurs trouvées », VuGen ne vous proposera pas de choix une fois qu'une corrélation potentielle sera identifiée ; la corrélation sera effectuée automatiquement.
Nous comprendrons l'API utilisée pour la corrélation plus tard. Cependant, il est conseillé d'utiliser la comparaison HTML plutôt que la comparaison de texte.
Une fois que vous avez sélectionné des règles, cliquez sur le bouton OK pour fermer les fenêtres.
Cliquez sur le bouton de la barre d'outils indiqué ici. Depuis le menu, VuGen régénérera le script (sans enregistrement) avec les nouvelles configurations. VuGen ajoutera automatiquement le code nécessaire à la gestion de la corrélation. Nous examinerons l'exemple plus en détail dans la section « Corrélation manuelle ».
Veuillez noter que si vous effectuez une corrélation manuellement ou utilisez une corrélation automatique, le morceau de code contiendra exactement la même syntaxe et la même fonction.
Étapes pour corréler automatiquement un script :
- Enregistrer un script
- Script de relecture
- Identifier les valeurs à corréler
- Sélectionnez les valeurs et cliquez sur le bouton de corrélation automatique
- Vérifiez le script en l'exécutant à nouveau. Une exécution réussie signifie une corrélation réussie.
Astuce:
- La corrélation permet d'exécuter votre script avec différentes valeurs
- La corrélation réduit également la taille de votre script
Corrélation manuelle
La corrélation manuelle consiste à écrire du code directement dans votre script pour répondre à des valeurs en constante évolution. Nous pouvons le diviser en étapes ci-dessous :
- Déterminer la valeur à capturer
- Trouver les limites de texte droite et gauche de la valeur à capturer (WEB)
- Trouver quelle occurrence des limites du texte doit être utilisée
- Ajoutez une fonction web_reg_save_param au script, au-dessus du morceau de code qui demande la page avec la valeur à capturer
- Ajoutez un nom de paramètre, une limite gauche, une limite droite et une occurrence à la fonction
- Paramétrer la valeur dynamique dans le script à chaque fois qu'elle se produit
- Vérifier la bonne exécution
web_reg_save_param (" OracleAppJSESSIONID3", "LB/IC=JSESSIONID=", "RB/IC=;", "Ord=l", "Search=headers", "RelFrameId=l", LAST); web_reg_save_param("Siebel_Analytic_ViewState2", "LB/IC=ViewState\" value=\"", "RB/IC=\"", "Ord=1", "Search=Body", "RelFrameId=l", LAST);
Code Notes: Les deux extraits apparaissent exactement tels que publiés. Observez les nombres ordinaux : Ord=l et RelFrameId=l Utilisez un L minuscule, et VuGen attend le chiffre 1.
La corrélation manuelle peut être effectuée par VUser Comparison. Les étapes de la méthode de comparaison VUser de corrélation peuvent être divisées comme ci-dessous :
- Identifier les valeurs dynamiques qui doivent être corrélées
- Trouvez la réponse du serveur contenant la valeur dynamique
- Capturer la valeur dynamique dans un paramètre
- Remplacez chaque occurrence de la valeur dynamique par le paramètre
- Vérifier les modifications
Comprendre la fonction web_reg_save_param
VuGen propose plusieurs fonctions ou API pour corréler les candidats, notamment :
- web_reg_save_param
- web_reg_save_param_ex
- web_reg_save_param_regexp
- web_reg_save_param_xpath
Note de version : Les versions actuelles de VuGen traitent web_reg_save_param_ex comme successeur de la fonction originale, et web_reg_save_param_regexp comme un choix possible lorsque les limites elles-mêmes changent. L'exemple original fonctionne toujours.
Bien qu'une brève introduction soit fournie ici, pour une compréhension détaillée des fonctions et de leurs paramètres, ouvrez VuGen, saisissez la fonction (ou utilisez la boîte à outils Steps), déplacez le curseur sur la fonction et appuyez sur F1 – familiarisez-vous avec Aide VuGen et prenez-en l'habitude. Vous y serez souvent confronté dans ce secteur.
C'est parti avec les détails de la fonction :
web_reg_save_param (Nom du paramètre, limite gauche, limite droite)
Liste des attributs
Le tableau ci-dessous répertorie tous les attributs acceptés par la fonction, indique s'ils sont obligatoires et ce qu'ils contrôlent.
| Attribut | Champs obligatoires? | Ce qu'il fait |
| Convertir | Optionnel | HTML_À_URL convertit les données encodées en HTML en un URL- Format de données encodées. HTML_TO_TEXT convertit les données encodées en HTML au format texte brut. |
| Ignorer les redirections | Optionnel, valeur par défaut : « Ignorer les redirections = Non » | Si cette option est activée et que la réponse du serveur est une information de redirection (code d'état HTTP 300-303, 307), cette réponse n'est pas prise en compte dans la recherche. La requête GET est envoyée à l'emplacement de redirection et la recherche s'effectue sur la réponse reçue. |
| LB | Requis | La limite gauche du paramètre ou des données dynamiques. Si vous ne spécifiez pas de valeur LB, la limite est définie par tous les caractères du début des données. Les paramètres de limite sont sensibles à la casse. Pour personnaliser davantage le texte de recherche, utilisez un ou plusieurs indicateurs de texte. |
| PAS TROUVÉ | Optionnel, valeur par défaut « erreur » | Gestion des cas où une limite est introuvable et qu'une chaîne vide est générée. « Not found=error » génère une erreur. « Not found=warning » (« Not found=empty » dans les versions précédentes) remet le compteur de paramètres à zéro et poursuit l'exécution, ce qui est idéal pour vérifier si la chaîne a été trouvée sans interrompre le script. Si l'option « Continuer en cas d'erreur » est activée, le script continue même en cas d'erreur, mais celle-ci est consignée dans le journal étendu. |
| ORD | Facultatif, valeur par défaut 1 | Indique la position ordinale ou l'instance de la correspondance. Si vous spécifiez « Tous », les valeurs des paramètres sont enregistrées dans un tableau. L'utilisation de « Instance » au lieu de « ORD » est prise en charge pour assurer la compatibilité avec les versions précédentes, mais est déconseillée. |
| RB | Requis | La limite droite du paramètre ou des données dynamiques. Si vous ne spécifiez pas de valeur RB, tous les caractères jusqu'à la fin des données sont utilisés comme limite. Les paramètres de limite sont sensibles à la casse. Pour personnaliser davantage le texte de recherche, utilisez un ou plusieurs indicateurs de texte. |
| RelFrameID | Optionnel | Le niveau hiérarchique de la page HTML par rapport à la requête URLLes valeurs possibles sont ALL ou un nombre. RelFrameID n'est pas pris en charge dans les scripts d'interface graphique. |
| EnregistrerLen | Optionnel, valeur par défaut -1 | Longueur de la sous-chaîne de la valeur trouvée, à partir du décalage spécifié, à enregistrer dans le paramètre. Par défaut, l'enregistrement s'effectue à la fin de la chaîne. |
| Enregistrer le décalage | Facultatif, valeur par défaut 0 | Décalage d'une sous-chaîne de la valeur trouvée, à enregistrer dans le paramètre. La valeur du décalage doit être non négative. |
| Rechercher | Optionnel, par défaut TOUS | L'étendue de la recherche : où rechercher les données délimitées. Les valeurs possibles sont : En-têtes (recherche uniquement dans les en-têtes), Corps (recherche uniquement dans le corps du document, sans les en-têtes), Aucune ressource (recherche uniquement dans le corps du document HTML, sans les en-têtes ni les ressources), ou TOUT (recherche dans le corps, les en-têtes et les ressources). |
Une fois que le script se rejoue correctement, ajoutez paramétrage, transactions et paramètres d'exécution, exécutez-le depuis le Contrôleur, et lisez le résultat dans Analyse dans le cadre d'un projet plus vaste Test de performance et test de charge.







