loadrunner transactions
oops concepts en c # avec des exemples
Introduction aux améliorations de base de VuGen Script:
Nous avons exploré Corrélation dans LoadRunner en détail dans notre précédent tutoriel dans ce Tutoriels complets de formation LoadRunner .
Dans les deux derniers tutoriels, nous avons travaillé sur la gestion des données dans un script VuGen (corrélation et paramétrage).
Dans ce didacticiel LoadRunner, nous verrons les autres améliorations de base (répertoriées ci-dessous) requises pour notre script:
- Transactions - Pour mesurer le taux et le temps de réponse des actions de l'utilisateur.
- Vérifications de texte et d'image - Pour s'assurer que la réponse renvoyée est correcte.
- commentaires
- Points de rendez-vous - Pour que Vusers exécute une tâche simultanément.
=> Cliquez ici pour une série complète de didacticiels LoadRunner
Ce que vous apprendrez:
- Transactions dans VuGen Script
- Vérifications de texte et d'image dans VuGen Script
- Commentaires dans VuGen Script
- Rendezvous Point dans VuGen Script
- Conclusion
- lecture recommandée
Transactions dans VuGen Script
La simple relecture des scripts de performance ne fera que mettre une charge sur l'application mais ne mesurera rien. L'objectif final de tout script de performance est d'injecter de la charge et de mesurer le taux et le temps de réponse des actions de l'utilisateur sur l'application.
Par exemple ,combien de temps une recherche de produit a pris lorsque 100 utilisateurs sont sur l'application, combien de rapports sont générés en 15 minutes, par exemple, etc. Pour les mesurer, nous devons insérer des transactions dans un script VuGen (après le test, nous pouvons voir le taux et le temps de réponse de ces transactions dans les résultats).
«Une transaction est une mesure de bout en bout d’une action utilisateur (ou d’un groupe d’actions utilisateur) sur une application».
Les transactions peuvent être insérées de deux manières:
- Pendant l'enregistrement
- Après l'enregistrement (où nous insérons manuellement les fonctions de transaction dans le script)
Insérons la transaction pour l’action utilisateur «Connexion» sur notre application «Visites Web».
Dans notre premier tutoriel, nous avons vu comment enregistrer les actions des utilisateurs. Pendant l’enregistrement, après avoir saisi le «Nom d’utilisateur» et le «Mot de passe» sur la page de connexion, juste avant de cliquer sur le bouton «Connexion», cliquez sur l’icône «Insérer la transaction de démarrage» dans la barre d’enregistrement flottante.
VuGen demande le nom de la transaction. Entrez un nom significatif. Nous avons donné 'Login' ici mais il est recommandé de suivre une convention comme celle-ci (numéro de transaction, nom du scénario, action de l'utilisateur, etc.): 01_WebTours_Launch 02_WebTours_Login (et ainsi de suite).
Cliquez maintenant sur le Bouton de connexion.
Une fois que nous atteignons la page d'accueil (page principale), cliquez sur l'icône «Insérer une transaction de fin» dans la barre d'enregistrement flottante.
Sélectionnez la transaction à laquelle nous voulons mettre fin (transaction «Connexion» ici).
Arrêtez l'enregistrement et consultez le script généré. Nous pouvons voir que les fonctions de début et de fin de transaction sont insérées dans le script (surlignées en jaune) et que toutes les requêtes correspondant à l’action utilisateur «Connexion» sont placées entre ces fonctions.
lr_start_transaction('Login'); web_submit_data('login.pl', 'Action= http://127.0.0.1:1080/cgi-bin/login.pl ', 'Method= POST ', 'TargetFrame=', 'RecContentType= text/html ', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in= home ', 'Snapshot= t3.inf ', 'Mode= HTML ', ITEMDATA , 'Name= userSession ', 'Value= 123530.624949372zDftVAzpfcAiDDDDDiVctpzDQVcf ', ENDITEM , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= login.x ', 'Value= 69 ', ENDITEM , 'Name= login.y ', 'Value= 8 ', ENDITEM , LAST ); lr_end_transaction('Login', LR_AUTO );
La syntaxe des fonctions «début de transaction» et «fin de transaction» est assez simple. Les deux ont le nom de la transaction comme premier argument. La fonction «fin de transaction» a un autre attribut - «LR_AUTO», qui indique à VuGen de réussir ou d’échouer une transaction automatiquement (au lieu de nous indiquer explicitement une condition de réussite ou d’échec).
Si le load runner rencontre des erreurs lors de l'exécution des demandes dans une transaction, il échoue la transaction, sinon il la transmet.
Vérifications de texte et d'image dans VuGen Script
Les vérifications de texte sont utilisées pour vérifier si la réponse renvoyée pour la demande est correcte ou non. Dans le didacticiel «Corrélation», nous avons vu que parfois VuGen peut ne pas afficher d’erreur mais que la réponse renvoyée peut ne pas être la bonne. Donc, pour nous assurer que la réponse est correcte, nous utilisons des vérifications de texte.
Par exemple, lorsque nous nous connectons à l'application Web Tours, nous accédons à la page d'accueil. Vérifions dans le script que nous obtenons la bonne réponse (page d’accueil) ou non lorsque nous nous connectons.
Pour ce faire, nous devons identifier un texte dans la réponse (page d'accueil ici) qui peut dire si la réponse est correcte ou non. «Bienvenue» est l’un de ces textes.
Pour la vérification du texte, nous utilisons ' web_reg_find » fonction juste avant la demande.
La syntaxe de cette fonction est:
web_reg_find(“Text=”,”SaveCount=”,”Fail=”,LAST);
Ici, nous avons trois attributs (reportez-vous à l'aide de VuGen pour obtenir la liste complète des attributs):
'Texte' - Utilisé pour spécifier le texte à rechercher.
«SaveCount» - Enregistre le nombre d’occurrences du texte spécifié dans un paramètre que nous spécifions.
«Fail»: prend l’une des deux valeurs «Find» et «NotFound» et échoue le script en conséquence.
Ainsi, la fonction, web_reg_find ('Text = Welcome', 'SaveCount = WelcomeCount', 'Fail = NotFound', LAST) recherche le texte 'Welcome' dans la réponse et enregistre le nombre d'occurrences dans le paramètre 'WelcomeCount' (et échoue le script si le texte n'est pas trouvé).
Le script ressemble à ceci:
web_reg_find('Text= Welcome ','SaveCount= WelcomeCount ','Fail= NotFound ', LAST ); web_submit_data('login.pl', 'Action= http://127.0.0.1:1080/cgi-bin/login.pl ', 'Method= POST ', 'TargetFrame= body ', 'RecContentType= text/html ', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in= home ', 'Snapshot= t2.inf ', 'Mode= HTML ', ITEMDATA , 'Name= userSession ', 'Value= 123531.149939247zDftVDDpfcfDiVctpiAVVf ', ENDITEM , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= login.x ', 'Value= 66 ', ENDITEM , 'Name= login.y ', 'Value= 12 ', ENDITEM , LAST );
Maintenant, si nous rejouons le script, nous obtiendrons une erreur pour la demande de connexion (voir dans le journal du relais) car VuGen n'a pas trouvé le texte que nous avons spécifié, dans la réponse. En effet, nous n’avons pas obtenu la bonne page d’accueil (comme indiqué dans le «visualiseur d’exécution»).
Corrigeons maintenant notre script (corrélons la session userSession) et réexécutons le script.
web_reg_find('Text=Welcome','SaveCount=WelcomeCount','Fail=NotFound', LAST ); web_submit_data('login.pl', 'Action=http://127.0.0.1:1080/cgi-bin/login.pl', 'Method=POST', 'TargetFrame=body', 'RecContentType=text/html', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home', 'Snapshot=t2.inf', 'Mode=HTML', ITEMDATA , 'Name=userSession', 'Value={corUserSession}', ENDITEM , 'Name=username', 'Value=jojo', ENDITEM , 'Name=password', 'Value=bean', ENDITEM , 'Name=JSFormSubmit', 'Value=off', ENDITEM , 'Name=login.x', 'Value=66', ENDITEM , 'Name=login.y', 'Value=12', ENDITEM , LAST );
Cette fois, nous ne voyons aucune erreur dans le journal de relecture, mais nous voyons un message indiquant que notre vérification de texte a réussi. Nous avons donc obtenu la bonne réponse cette fois (comme cela est corroboré par le «visualiseur d’exécution»).
Nous pouvons combiner les vérifications de texte avec des transactions et faire en sorte que VuGen réussisse une transaction si la vérification de texte est réussie et échoue une transaction si une vérification de texte échoue.
Ceci est montré ci-dessous:
lr_start_transaction('Login'); web_reg_find('Text=Welcome','SaveCount=WelcomeCount',LAST); web_submit_data('login.pl', 'Action=http://127.0.0.1:1080/cgi-bin/login.pl', 'Method=POST', 'TargetFrame=body', 'RecContentType=text/html', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home', 'Snapshot=t2.inf', 'Mode=HTML', ITEMDATA, 'Name=userSession', 'Value={corUserSession}', ENDITEM, 'Name=username', 'Value=jojo', ENDITEM, 'Name=password', 'Value=bean', ENDITEM, 'Name=JSFormSubmit', 'Value=off', ENDITEM, 'Name=login.x', 'Value=66', ENDITEM, 'Name=login.y', 'Value=12', ENDITEM, LAST); if(atoi(lr_eval_string('{WelcomeCount}'))>0) { lr_end_transaction('Login',LR_PASS); } else { lr_end_transaction('Login',LR_FAIL); }
Nous avons utilisé 'if statement' ici avec l'attribut 'SaveCount'. Le paramètre 'WelcomeCount' (qui enregistre le nombre d'occurrences du texte) est utilisé comme condition pour réussir / échouer la transaction. Les attributs «LR_PASS» et «LR_FAIL» des fonctions de transaction sont utilisés pour réussir et échouer explicitement (respectivement) une transaction.
Noter: Nous avons utilisé deux nouvelles fonctions ici - «Atoi» et «Lr_eval_string» . Nous parlerons de ces fonctions plus tard.
Quelques informations supplémentaires sur la combinaison des attributs de fonction «web_reg_find»:
# 1) Si seul l'attribut «Texte» est utilisé -
Exemple: web_reg_find ('Texte = Bienvenue', LAST) -
VuGen recherche le texte et échoue le script si la recherche échoue.
# 2) Si seuls les attributs 'Text' et 'SaveCount' sont utilisés -
Exemple: web_reg_find ('Text = Welcome', 'SaveCount = WelcomeCount', LAST) - VuGen recherche le texte et enregistre le nombre d'occurrences (même s'il est égal à zéro) dans le paramètre spécifié (n'échoue pas le script si la recherche échoue ).
# 3) Si seuls les attributs «Texte» et «Échec» sont utilisés -
Exemple: web_reg_find ('Text = Welcome', 'Fail = NotFound', LAST) - VuGen recherche le texte et échoue le script si le texte est trouvé / introuvable.
Des vérifications de texte peuvent également être insérées pendant l’enregistrement à l’aide de l’icône «Insérer une vérification de texte» sur la barre d’enregistrement flottante. Cela insérera le même 'Web_reg_find' fonction dans le script.
Mais il vaut mieux insérer cette fonction manuellement car nous aurons un meilleur contrôle principalement sur les attributs.
Nous avons bien compris la vérification du texte, passons maintenant à la vérification des images.
La vérification d'image est utilisée pour vérifier la présence d'une image spécifiée dans une réponse. « web_image_check » La fonction est utilisée pour la vérification d'image. Cette fonction doit être placée après la requête (dans la réponse dont nous attendons l'image).
Exemple de cette fonction:
web_image_check(“Image”,”Src=/WebTours/images/flights.gif”,LAST)
Où le premier attribut est un nom significatif et le deuxième attribut («Src») est le nom / lien de l’image (reportez-vous à l’aide de VuGen pour obtenir la liste complète des attributs).
Commentaires dans VuGen Script
Les commentaires dans un script VuGen peuvent être saisis pendant l'enregistrement et également manuellement après l'enregistrement du script.
Pendant l'enregistrement, cliquez sur le «Insérer un commentaire» icône sur la barre d'enregistrement flottante.
Saisissez le commentaire (dites «Connexion» ici).
Après l'enregistrement, nous pouvons voir les commentaires dans le script comme indiqué ci-dessous.
/* Login */ web_submit_data('login.pl', 'Action=http://127.0.0.1:1080/cgi-bin/login.pl', 'Method=POST', 'TargetFrame=body', 'RecContentType=text/html', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home', 'Snapshot=t6.inf', 'Mode=HTML',
Dans VuGen, une seule ligne peut être commentée en mettant simplement «//» avant la ligne comme indiqué ci-dessous:
// web_add_cookie('SRCHD=AF=IESS3N; DOMAIN=www.bing.com'); web_add_cookie('SRCHUID=V=2&GUID=89730C3AA700412BAB917005DE9F5F47&dmnchg=1; DOMAIN=www.bing.com'); web_add_cookie('SRCHUSR=DOB=20180312; DOMAIN=www.bing.com');
Et plusieurs lignes peuvent être connectées en mettant «/ *» au début et «* /» à la fin (comme illustré ci-dessous)
/* web_add_cookie('SRCHD=AF=IESS3N; DOMAIN=www.bing.com'); web_add_cookie('SRCHUID=V=2&GUID=89730C3AA700412BAB917005DE9F5F47&dmnchg=1; DOMAIN=www.bing.com'); web_add_cookie('SRCHUSR=DOB=20180312; DOMAIN=www.bing.com'); */
Noter: Dans les exemples ci-dessus, nous avons commenté les fonctions des cookies ( web_add_cookie ). Nous parlerons des fonctions des cookies plus tard dans cette série de tutoriels.
Il est recommandé d'insérer des commentaires à chaque étape de l'enregistrement car cela nous aidera à relier les requêtes du script aux actions de l'utilisateur sur l'application.
Rendezvous Point dans VuGen Script
Si nous avons un scénario dans lequel un plus grand nombre d’utilisateurs exécutent une action simultanément sur l’application (comme la vérification des résultats) et si nous devons simuler la même chose dans notre test de performances, nous pouvons utiliser un «point de rendez-vous».
Un `` point de rendez-vous '' est une fonction unique et simple dans un script VuGen qui demande à load runner (lors d'un test avec plusieurs utilisateurs) d'attendre à une étape spécifiée du script jusqu'à ce que tous les Vusers (exécutant le script) arrivent à cette étape. cette demande ultérieure peut être exécutée simultanément.
La syntaxe de la fonction Rendezvous est la suivante:
lr_rendezvous(“MeaningfulName”);
Cette fonction peut être insérée pendant l'enregistrement et également manuellement après l'enregistrement du script.
Supposons que nous souhaitons charger simultanément l’étape de paiement dans notre application «Visites Web». Lors de l’enregistrement à cette étape (avant de soumettre les détails du paiement), cliquez sur l’icône «Insérer un rendez-vous» dans la barre d’enregistrement flottante.
Et entrez le nom du point de rendez-vous (tout nom significatif).
Après l'enregistrement, nous pouvons voir la fonction de rendez-vous dans le script comme ceci.
lr_rendezvous('Payment'); web_submit_data('reservations.pl_3', 'Action= http://127.0.0.1:1080/cgi-bin/reservations.pl ', 'Method= POST ', 'TargetFrame=', 'RecContentType= text/html ', 'Referer= http://127.0.0.1:1080/cgi-bin/reservations.pl ', 'Snapshot= t13.inf ', 'Mode= HTML ', ITEMDATA , 'Name= firstName ', 'Value= Jojo ', ENDITEM , 'Name= lastName ', 'Value= Bean ', ENDITEM , 'Name= address1 ', 'Value= 1st Lane , Down Street', ENDITEM , 'Name= address2 ', 'Value= 567123 ', ENDITEM , 'Name= pass1 ', 'Value= Jojo Bean ', ENDITEM , 'Name= creditCard ', 'Value= 123456789101 ', ENDITEM , 'Name= expDate ', 'Value= 0520 ', ENDITEM , 'Name= oldCCOption ', 'Value=', ENDITEM , 'Name= numPassengers ', 'Value= 1 ', ENDITEM , 'Name= seatType ', 'Value= Coach ', ENDITEM , 'Name= seatPref ', 'Value= None ', ENDITEM , 'Name= outboundFlight ', 'Value= 020 ;338;05/03/2018', ENDITEM , 'Name= advanceDiscount ', 'Value= 0 ', ENDITEM , 'Name= returnFlight ', 'Value=', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= .cgifields ', 'Value= saveCC ', ENDITEM , 'Name= buyFlights.x ', 'Value= 63 ', ENDITEM , 'Name= buyFlights.y ', 'Value= 12 ', ENDITEM , LAST );
Maintenant, lorsque nous exécutons ce script avec plusieurs utilisateurs dans Controller, le script sera exécuté par Vusers indépendamment mais les Vusers attendront à cette étape de `` Paiement '' jusqu'à ce que tous (ou un certain pourcentage de Vusers définis dans la politique Rendezvous) atteignent cette étape après quoi ils exécutent cette étape simultanément.
Nous en verrons plus sur la politique de rendez-vous (options) dans le tutoriel Controller.
Conclusion
Jusqu'à présent, nous avons abordé la corrélation et le paramétrage dans les didacticiels précédents et les transactions, les vérifications de texte / image, les commentaires et les points de rendez-vous dans ce didacticiel, nous avons également couvert les méthodes d'amélioration des scripts les plus importantes.
Dans notre prochain didacticiel, nous verrons d'autres défis de script ainsi que les moyens de les gérer.
=> Visitez ici pour une série complète de didacticiels LoadRunner
Tutoriel PREV | Tutoriel SUIVANT
lecture recommandée
- Test de charge avec les didacticiels HP LoadRunner
- Introduction à Micro Focus LoadRunner - Test de charge avec LoadRunner Tutorial # 1
- Corrélation - Test de charge avec LoadRunner
- Tutoriel LoadRunner pour les débutants (cours approfondi gratuit de 8 jours)
- Analyse des résultats de test et rapports - Test de charge avec LoadRunner
- Test des performances des services Web à l'aide du script LoadRunner VuGen
- Différence entre LoadRunner et Performance Center
- Comment configurer les fichiers de script LoadRunner VuGen et les paramètres d'exécution