loadrunner transactions
on puc trobar la meva clau de seguretat de xarxa
Introducció a les millores bàsiques de VuGen Script:
Vam explorar Correlació a LoadRunner detalladament en el nostre tutorial anterior Tutorials de formació LoadRunner complets .
En els dos darrers tutorials, hem treballat sobre el maneig de dades en un script VuGen (Correlació i parametrització).
En aquest tutorial de LoadRunner, veurem les altres millores bàsiques (llistades a continuació) que són necessàries per al nostre script:
- Transaccions - Per mesurar la velocitat i el temps de resposta de les accions de l'usuari.
- Comprovacions de text i imatge - Per assegurar que la resposta retornada sigui correcta.
- Comentaris
- Punts de trobada - Fer que Vusers realitzi una tasca simultàniament.
=> Feu clic aquí per obtenir una sèrie completa de tutorials de LoadRunner
Què aprendreu:
- Transaccions amb VuGen Script
- Comprovacions de text i imatge a l’escriptura VuGen
- Comentaris a VuGen Script
- Punt de trobada a VuGen Script
- Conclusió
- Lectura recomanada
Transaccions amb VuGen Script
La simple reproducció dels guions de rendiment només carregarà l’aplicació però no mesura res. L'objectiu final de qualsevol script de rendiment és injectar càrrega i mesurar la velocitat i el temps de resposta de les accions de l'usuari a l'aplicació.
Per exemple ,quant de temps ha trigat una cerca de producte quan hi ha 100 usuaris a l'aplicació, quants informes es generen en un temps de 15 minuts, etc. Per mesurar-los, hem d’inserir transaccions en un script VuGen (després de la prova, podem veure la taxa i el temps de resposta d’aquestes transaccions als resultats).
'Una transacció és un mesurament extrem a extrem d'una acció de l'usuari (o d'un grup d'accions de l'usuari) en una aplicació'.
Les transaccions es poden inserir de dues maneres:
- Durant la gravació
- Després de la gravació (on inserim manualment les funcions de transacció a l'script)
Inserim la transacció per a l'acció de l'usuari 'Inici de sessió' a la nostra aplicació 'Visites web'.
Al nostre primer tutorial, vam veure com registrar les accions dels usuaris. Durant la gravació, després d’introduir el nom d’usuari i la contrasenya a la pàgina d’inici de sessió, just abans de fer clic al botó ‘Inici de sessió’, feu clic a la icona ‘Insereix una transacció inicial’ a la barra de gravació flotant.
VuGen sol·licita el nom de la transacció. Introduïu qualsevol nom significatiu. Aquí hem donat 'Inici de sessió', però és una bona pràctica seguir una convenció com aquesta (número de transacció, nom de l'escenari, acció de l'usuari, etc.): 01_WebTours_Launch 02_WebTours_Login (etc.).
Ara feu clic a Botó d'inici de sessió.
Un cop arribem a la pàgina principal (pàgina principal), feu clic a la icona 'Insereix transacció final' a la barra de gravació flotant.
Seleccioneu la transacció que volem finalitzar (transacció 'Inici de sessió' aquí).
Atureu la gravació i consulteu l'script generat. Podem veure que les funcions d’inici de transacció i final de transacció s’insereixen a l’script (ressaltades en groc) i totes les sol·licituds corresponents a l’acció de l’usuari ‘Inici de sessió’ s’inclouen entre aquestes funcions.
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 sintaxi de les funcions 'inici de transacció' i 'final de transacció' és bastant senzilla. Tots dos tenen el nom de la transacció com a primer argument. La funció 'finalitzar la transacció' té un atribut més: 'LR_AUTO', que indica a VuGen que passi o falli una transacció automàticament (en lloc que especifiquem explícitament una condició per a un passi o un error).
Si el corredor de càrrega es troba amb algun error en executar sol·licituds dins d'una transacció, falla la transacció en cas contrari, la transmet.
Comprovacions de text i imatge a l’escriptura VuGen
Les comprovacions de text s’utilitzen per verificar si la resposta retornada per a la sol·licitud és correcta o no. Al tutorial de 'Correlació', vam veure que de vegades VuGen pot no mostrar cap error, però la resposta retornada pot no ser la correcta. Per tant, per assegurar-nos que la resposta és correcta, fem servir comprovacions de text.
Per exemple, quan accedim a l'aplicació de visites web, anem a la pàgina d'inici. Verifiquem a l'script que obtenim la resposta correcta (pàgina d'inici) o no quan iniciem la sessió.
Per fer-ho, hem d’identificar algun text de la resposta (pàgina d’inici aquí) que pugui dir si la resposta és correcta o no. 'Benvinguda' és un d'aquests textos.
Per a la comprovació de text, fem servir ' web_reg_find ' funcioni just abans de la sol·licitud.
La sintaxi d'aquesta funció és:
web_reg_find(“Text=”,”SaveCount=”,”Fail=”,LAST);
Aquí tenim tres atributs (consulteu l’ajuda de VuGen per obtenir la llista completa d’atributs):
'Text': s'utilitza per especificar quin text voleu cercar.
'SaveCount': desa el nombre d'ocurrències del text especificat en un paràmetre que especifiquem.
'Falla': pren un dels dos valors: 'Trobat' i 'No trobat' i falla el script en conseqüència.
Per tant, la funció web_reg_find ('Text = Welcome', 'SaveCount = WelcomeCount', 'Fail = NotFound', LAST) cerca el text 'Welcome' a la resposta i desa el nombre d'ocurrències al paràmetre 'WelcomeCount' (i falla l'script si no es troba el text).
El guió té aquest aspecte:
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 );
Ara, si tornem a reproduir l'script, obtindrem un error per a la sol·licitud d'inici de sessió (vegeu el registre de retransmissió) perquè VuGen no ha trobat el text que hem especificat a la resposta. Això es deu al fet que no hem obtingut la pàgina inicial correcta (com es mostra al 'visor en temps d'execució').
Ara corregim el nostre script (correlacionem UserSession) i tornem a reproduir-lo.
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 );
Aquesta vegada no veiem cap error al registre de reproducció, però veiem un missatge que indica que la nostra comprovació de text ha estat correcta. Per tant, hem obtingut la resposta correcta aquesta vegada (ja que el 'visor d'execució' ho corrobora).
Podem combinar comprovacions de text amb transaccions i fer que VuGen transmeti una transacció si la comprovació de text té èxit i fracassa una transacció si falla una comprovació de text.
Això es mostra a continuació:
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); }
Hem utilitzat la sentència 'if' aquí amb l'atribut 'SaveCount'. El paràmetre ‘WelcomeCount’ (que desa el nombre d’ocurrències del text) s’utilitza com a condició per passar / suspendre la transacció. Els atributs 'LR_PASS' i 'LR_FAIL' de les funcions de transacció s'utilitzen per passar explícitament i transmetre (respectivament) una transacció.
Nota: Hem utilitzat dues noves funcions aquí: 'Atoi' i 'Lr_eval_string' . Més endavant parlarem d’aquestes funcions.
Alguna informació més sobre la combinació dels atributs de la funció 'web_reg_find':
# 1) Si només s'utilitza l'atribut 'Text' -
Exemple: web_reg_find ('Text = Benvingut', ÚLTIM) -
VuGen cerca el text i falla l'script si la cerca no funciona.
# 2) Si només s'utilitzen atributs 'Text' i 'SaveCount' -
Exemple: web_reg_find ('Text = Welcome', 'SaveCount = WelcomeCount', LAST): VuGen cerca el text i desa el nombre d'ocurrències (encara que sigui zero) al paràmetre especificat (no falla l'script si la cerca no funciona) ).
# 3) Si només s'utilitzen atributs 'Text' i 'Error'
Exemple: web_reg_find ('Text = Welcome', 'Fail = NotFound', ÚLTIM): VuGen cerca el text i falla l'script si el text es troba / no es troba.
Les comprovacions de text també es poden inserir durant la gravació mitjançant la icona 'Insereix comprovació de text' de la barra de gravació flotant. Això inserirà el mateix 'Web_reg_find' funció al guió.
Però és millor que inserim aquesta funció manualment, ja que tindrem un millor control principalment sobre els atributs.
Hem comprès clarament la comprovació de text; ara anem a la comprovació d’imatges.
La comprovació d’imatges s’utilitza per verificar la presència d’una imatge especificada en una resposta. ' web_image_check ' La funció s'utilitza per comprovar la imatge. Aquesta funció s'ha de posar després de la sol·licitud (en la resposta de la qual esperem la imatge).
Exemple d'aquesta funció:
web_image_check(“Image”,”Src=/WebTours/images/flights.gif”,LAST)
Quan el primer atribut és qualsevol nom significatiu i el segon atribut (‘Src’) és el nom / enllaç de la imatge (consulteu l’ajuda de VuGen per obtenir la llista completa d’atributs).
Comentaris a VuGen Script
Els comentaris d'un script VuGen es poden introduir durant la gravació i també manualment després de gravar-lo.
Durant la gravació, feu clic a 'Insereix comentari' icona a la barra de gravació flotant.
Introduïu el comentari (digueu 'Inici de sessió' aquí).
Després de gravar, podem veure els comentaris al guió com es mostra a continuació.
/* 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',
A VuGen, es pot comentar una sola línia simplement posant '//' abans de la línia, tal com es mostra a continuació:
// 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');
I es poden connectar diverses línies posant '/ *' al principi i '* /' al final (com es mostra a continuació)
/* 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'); */
Nota: En els exemples mostrats anteriorment, hem comentat les funcions de cookies ( web_add_cookie ). Més endavant en aquesta sèrie de tutorial parlarem de les funcions de cookies.
És una bona pràctica inserir comentaris a cada pas durant la gravació perquè ens ajudarà a relacionar les sol·licituds del script amb les accions de l’usuari a l’aplicació.
Punt de trobada a VuGen Script
Si tenim un escenari en què un nombre més gran d’usuaris realitzen una acció simultàniament a l’aplicació (com ara comprovar els resultats) i si hem de simular el mateix a la nostra prova de rendiment, podem utilitzar un «punt de trobada».
Un 'punt de trobada' és una funció senzilla i senzilla en un script VuGen que indica al corredor de càrrega (durant una prova amb diversos usuaris) que esperi a un pas especificat de l'script fins que tots els Vusers (executant l'script) arribin a aquest pas, de manera que aquesta sol·licitud posterior es pot executar simultàniament.
La sintaxi de la funció Rendezvous és:
lr_rendezvous(“MeaningfulName”);
Aquesta funció es pot inserir durant la gravació i també manualment després de gravar el guió.
Suposem que volem fer una càrrega simultània al pas de pagament a la nostra aplicació 'Visites web'. Durant la gravació en aquest pas (abans d’enviar els detalls del pagament), feu clic a la icona ‘Insereix una cita’ a la barra de gravació flotant.
I introduïu el nom del punt de trobada (qualsevol nom significatiu).
Després de gravar, podem veure la funció de trobada al guió així.
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 );
Ara, quan executem aquest script amb diversos usuaris al controlador, Vusers executarà l'script de forma independent, però els Vusers esperaran en aquest pas de 'Pagament' fins que tots (o algun percentatge dels Vusers definits a la política Rendezvous) arribin a aquest pas després del qual realitzen aquest pas simultàniament.
Veurem més informació sobre la política de reunions (opcions) al tutorial del controlador.
Conclusió
Fins ara hem comentat la correlació i la parametrització en els tutorials i transaccions anteriors, comprovacions de text / imatge, comentaris i punts de trobada d’aquest tutorial, també hem tractat els mètodes de millora dels scripts més importants.
Al nostre següent tutorial, veurem alguns reptes de scripting més juntament amb les maneres de gestionar-los.
=> Visiteu aquí per obtenir una sèrie completa de tutorials de LoadRunner
Lectura recomanada
- Prova de càrrega amb tutorials HP LoadRunner
- Introducció a Micro Focus LoadRunner: proves de càrrega amb LoadRunner Tutorial # 1
- Correlació: proves de càrrega amb LoadRunner
- Tutorial LoadRunner per a principiants (curs d'aprofundiment gratuït de 8 dies)
- Anàlisi i informes de resultats de proves: proves de càrrega amb LoadRunner
- Proves de rendiment dels serveis web mitjançant LoadRunner VuGen Scripting
- Diferència entre LoadRunner i Performance Center
- Com configurar els fitxers de scripts de LoadRunner VuGen i la configuració del temps d'execució