Corrélation dans LoadRunner avec l'exemple Web_Reg_Save_Param

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 le définit comme « une relation statistique entre deux ou plusieurs variables telle que des changements systématiques dans l'autre variable accompagnent des changements systématiques dans la valeur d'une variable ».

Pourquoi avons-nous besoin d’une corrélation ?

Comprenons la corrélation avec le scénario suivant.

Considérez que vous enregistrez un script à l'aide de LoadRunner.

Communication client-serveur

  1. Pendant l'enregistrement, le client envoie une requête au serveur pour démarrer une session
  2. Un serveur reçoit la requête et attribue un nouvel ID de session ABC
  3. Le client stocke l'identifiant de session ABC dans le script.
  4. Le client démarre la session avec l'ID ABC et envoie une requête à un serveur pour lui permettre d'enregistrer
  5. Le Serveur reconnaît l'ID ABC et permet au client d'enregistrer le script

Corrélation pendant l'enregistrement

  1. Etudions maintenant la communication client-serveur lors de la relecture
  2. Pendant le Replay, un client envoie une requête au serveur pour démarrer une session
  3. Un serveur reçoit la demande et attribue un nouvel ID de session XYZ
  4. Un client démarre la session avec l'ID de session ABC précédemment enregistré et envoie une demande au serveur pour lui permettre d'enregistrer
  5. 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.

Corrélation pendant la relecture

Nous avons besoin d'une solution permettant de capturer, d'analyser la valeur dynamique envoyée au moment de l'exécution et de renvoyer cette valeur au serveur. Voici à quoi ressemblera la communication client-serveur avec cette solution

  1. Pendant le Replay, un client envoie une requête au serveur pour démarrer une session
  2. Un serveur reçoit la requête et attribue un nouvel ID de session ZZZ
  3. Un client analyse ce nouvel identifiant de session ZZZ à partir de la demande.
  4. Un client envoie une demande de démarrage de session avec l'identifiant ZZZ
  5. Un serveur reconnaît l'ID ZZZ et permet au client de rejouer le script

Nous avons besoin d'une corrélation

Ce n'est rien d'autre que corrélation.

Cliquez sur ici si la vidéo n'est pas accessible

Dans le cas de VUGen, la corrélation est une relation de liaison entre une réponse et toute demande précédente.

Il existe diverses situations dans lesquelles une demande est basée sur une réponse précédemment reçue du serveur, telle qu'un ID de session, la date/heure du serveur qui est récupérée du serveur. Ces valeurs sont différentes chaque fois que vous exécutez une application ou enregistrez un script. Évidemment, si l'exécution du script dépend d'une valeur renvoyée par le serveur, cela signifie que vous devez trouver un mécanisme permettant de « capturer » la réponse du serveur et de la joindre aux requêtes attendues par le serveur. C'est ce qu'on appelle généralement la corrélation dans LoadRunner.

En termes simples, la solution en utilisant la corrélation est :

  1. Capturer la valeur de sortie d'une étape
  2. Utiliser la valeur capturée ci-dessus pour servir d'entrée à toutes les étapes suivantes

La corrélation est classée en 2 catégories dans VUGen/LoadRunner :

  • 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 HP 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 cliquez sur Ctrl +F7),

Corrélation automatique

La fenêtre ci-dessous s'ouvrira :

Corrélation automatique

Cliquez sur Corrélation =>Configuration – la fenêtre ci-dessous s'ouvrira.

Corrélation automatique

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 :

Corrélation automatique

Pour que la corrélation automatique fonctionne, vous devez vous assurer que l'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'un candidat à la corrélation est trouvé, mais il les corrélera simplement.

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 Corrélation automatiquedepuis le menu et VUGen régénérera le script (sans avoir à enregistrer) avec de nouvelles configurations. VUGen ajoutera automatiquement un morceau de code requis pour gérer la corrélation. Nous examinerons l’échantillon 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 :

  1. Enregistrer un script
  2. Script de relecture
  3. Identifier les valeurs à corréler
  4. Sélectionnez les valeurs et cliquez sur le bouton de corrélation automatique
  5. Vérifiez le script en l'exécutant à nouveau. Une exécution réussie signifie une corrélation réussie.

Conseil:

  • 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 :

  1. Déterminer la valeur à capturer
  2. Trouver les limites de texte droite et gauche de la valeur à capturer (WEB)
  3. Trouver quelle occurrence des limites du texte doit être utilisée
  4. Ajoutez une fonction web_reg_save_param au script, au-dessus du morceau de code qui demande la page avec la valeur à capturer
  5. Ajoutez un nom de paramètre, une limite gauche, une limite droite et une occurrence à la fonction
  6. Paramétrer la valeur dynamique dans le script à chaque fois qu'elle se produit
  7. 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);

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 :

  1. Identifier les valeurs dynamiques qui doivent être corrélées
  2. Réponse Rechercher des serveurs contenant la valeur dynamique
  3. Capturer la valeur dynamique dans un paramètre
  4. Remplacez chaque occurrence de la valeur dynamique par le paramètre
  5. Vérifier les modifications

Comprendre la fonction Web_reg_save_param

VUGen fournit 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

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, écrivez la fonction (ou utilisez Steps Toolbox), déplacez un curseur sur la fonction et cliquez sur F1 - familiarisez-vous avec l'aide de VUGen et créez un habitude. Vous devrez souvent y faire face lorsque vous travaillerez dans l’industrie.

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

Convertir: Les valeurs possibles sont:

HTML_TO_URL: convertir les données codées HTML en un format de données codées URL

HTML_TO_TEXT: convertir les données codées HTML au format texte brut ; cet attribut est facultatif.

Ignorer les redirections: Si « Ignore Redirections=Yes » est spécifié et que la réponse du serveur est une information de redirection (code d'état HTTP 300-303, 307), la réponse n'est pas recherchée. Au lieu de cela, après avoir reçu une réponse de redirection, la requête GET est envoyée à l'emplacement redirigé et la recherche est effectuée sur la réponse provenant de cet emplacement.

Cet attribut est facultatif. La valeur par défaut est « Ignorer les redirections = Non ».

KG: La limite gauche du paramètre ou des données dynamiques. Si vous ne spécifiez pas de valeur LB, tous les caractères du début 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. Cet attribut est obligatoire. Voir la section Arguments limites.

PAS TROUVÉ: L'option de gestion lorsqu'une limite n'est pas trouvée et qu'une chaîne vide est générée.

« Not found=error », la valeur par défaut, provoque une erreur lorsqu'une limite n'est pas trouvée.

« Not found=warning » (« Not found=empty » dans les versions antérieures) ne génère pas d'erreur. Si la limite n'est pas trouvée, il définit le nombre de paramètres sur 0 et continue l'exécution du script. L'option « avertissement » est idéale si vous voulez voir si la chaîne a été trouvée, mais vous ne voulez pas que le script échoue.

Notez : : Si Continuer en cas d'erreur est activé pour le script, même lorsque NOTFOUND est défini sur « erreur », le script continue lorsque la limite n'est pas trouvée, mais un message d'erreur est écrit dans le fichier journal étendu.

Cet attribut est également facultatif.

ORD: Indique la position ordinale ou l'instance de la correspondance. L'instance par défaut est 1. Si vous spécifiez « Tous », les valeurs des paramètres sont enregistrées dans un tableau. Cet attribut est facultatif.

Remarque : L'utilisation d'Instance au lieu d'ORD est prise en charge pour des raisons de compatibilité ascendante, mais est obsolète.

RB : 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. Cet attribut est obligatoire. Voir la section Arguments limites.

RelFrameID: Le niveau hiérarchique de la page HTML par rapport à l'URL demandée. Les valeurs possibles sont TOUTES ou un nombre. Cliquez sur Attribut RelFrameID pour une description détaillée. Cet attribut est facultatif.

Remarque : RelFrameID n'est pas pris en charge dans les scripts au niveau de l'interface graphique.

EnregistrerLen: La longueur d'une sous-chaîne de la valeur trouvée, à partir du décalage spécifié, à enregistrer dans le paramètre. Cet attribut est facultatif. La valeur par défaut est -1, indiquant qu'il faut enregistrer jusqu'à la fin de la chaîne.

Enregistrer le décalage: Le décalage d'une sous-chaîne de la valeur trouvée, à enregistrer dans le paramètre. La valeur de décalage doit être non négative. La valeur par défaut est 0. Cet attribut est facultatif.

Chercher: La portée 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 les données du corps, pas dans les en-têtes), Aucune ressource (recherche uniquement dans le corps HTML, à l'exclusion de tous les en-têtes et ressources) ou TOUTES (corps de recherche, en-têtes et ressources). La valeur par défaut est TOUT. Cet attribut est facultatif mais généralement préféré.