loadrunner transactions
nejlepší systém prodeje pro ipad
Úvod do základních vylepšení skriptu VuGen:
Prozkoumali jsme Korelace v LoadRunner podrobně v našem předchozím tutoriálu v tomto Kompletní výukové kurzy pro LoadRunner .
V posledních dvou cvičeních jsme pracovali na zpracování dat ve skriptu VuGen (korelace a parametrizace).
V tomto tutoriálu LoadRunner uvidíme další základní vylepšení (uvedená níže), která jsou vyžadována pro náš skript:
- Transakce - Měření rychlosti a doby odezvy akcí uživatele.
- Kontroly textu a obrázků - Aby byla zajištěna správnost vrácené odpovědi.
- Komentáře
- Rendezvous body - Aby Vusers provedl úkol současně.
=> Kliknutím sem zobrazíte kompletní řadu výukových programů LoadRunner
Co se naučíte:
- Transakce ve skriptu VuGen
- Kontroly textu a obrázků ve skriptu VuGen
- Komentáře ve skriptu VuGen
- Rendezvous Point ve skriptu VuGen
- Závěr
- Doporučené čtení
Transakce ve skriptu VuGen
Pouhé přehrání výkonnostních skriptů pouze zatíží aplikaci, ale nic neměří. Konečným cílem jakéhokoli výkonového skriptu je injektovat zátěž a měřit rychlost a dobu odezvy akcí uživatelů v aplikaci.
Například ,kolik času trvalo vyhledání produktu, když je v aplikaci 100 uživatelů, kolik přehledů se vygeneruje za dobu řekněme 15 minut atd. Abychom je mohli měřit, musíme vložit transakce do skriptu VuGen (po testu vidíme ve výsledcích rychlost a dobu odezvy těchto transakcí).
„Transakce je end-to-end měření akce uživatele (nebo skupiny akcí uživatele) v aplikaci“.
Transakce lze vložit dvěma způsoby:
- Během nahrávání
- After Recording (kde do skriptu ručně vložíme transakční funkce)
Vložme transakci pro akci uživatele „Přihlášení“ do naší aplikace „Webové prohlídky“.
V našem prvním kurzu jsme viděli, jak zaznamenávat akce uživatelů. Během nahrávání po zadání „uživatelského jména“ a „hesla“ na přihlašovací stránce, těsně před kliknutím na tlačítko „přihlášení“, klikněte na ikonu „Vložit zahájení transakce“ na plovoucí záznamové liště.
VuGen vyzve k zadání názvu transakce. Zadejte jakékoli smysluplné jméno. Zde jsme zadali „Přihlášení“, ale je dobrým zvykem dodržovat takovou konvenci (číslo transakce, název scénáře, akce uživatele atd.): 01_WebTours_Launch 02_WebTours_Login (atd.).
Nyní klikněte na Tlačítko přihlášení.
Jakmile přejdeme na domovskou stránku (hlavní stránku), klikněte na ikonu „Vložit koncovou transakci“ na plovoucí záznamové liště.
Vyberte transakci, kterou chceme ukončit (zde se přihlaste).
Zastavte nahrávání a podívejte se na vygenerovaný skript. Vidíme, že do skriptu jsou vloženy funkce zahájení a ukončení transakce (zvýrazněné žlutě) a mezi tyto funkce jsou uzavřeny všechny požadavky odpovídající akci uživatele „Přihlášení“.
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 );
Syntaxe funkcí „zahájení transakce“ a „ukončení transakce“ je velmi jednoduchá. Oba mají jako první argument název transakce. Funkce „koncová transakce“ má ještě jeden atribut - „LR_AUTO“, který instruuje VuGen, aby transakci automaticky předal nebo propadl (namísto toho, abychom výslovně určili podmínku pro průchod nebo selhání).
Pokud běžec zatížení narazí na chyby při provádění požadavků v rámci transakce, pak transakci selže, jinak transakci předá.
Kontroly textu a obrázků ve skriptu VuGen
Kontroly textu se používají k ověření, zda je odpověď vrácená pro požadavek správná nebo ne. V tutoriálu „Korelace“ jsme viděli, že někdy VuGen nemusí zobrazit žádnou chybu, ale vrácená odpověď nemusí být správná. Abychom zajistili správnou odpověď, používáme textové kontroly.
Například, když se přihlásíme do aplikace Web Tours, přejdeme na domovskou stránku. Ověříme ve skriptu, že dostáváme správnou odpověď (domovskou stránku), nebo ne, když se přihlásíme.
K tomu musíme v odpovědi (domovská stránka zde) identifikovat nějaký text, který může říci, zda je odpověď správná nebo ne. „Vítejte“ je jeden takový text.
Pro kontrolu textu používáme „ web_reg_find ' funkce těsně před požadavkem.
Syntaxe této funkce je:
web_reg_find(“Text=”,”SaveCount=”,”Fail=”,LAST);
Zde máme tři atributy (úplný seznam atributů naleznete v nápovědě VuGen):
„Text“ - Používá se k určení, jaký text hledat.
„SaveCount“ - Uloží počet výskytů zadaného textu do parametru, který zadáme.
„Fail“ - Převezme jednu ze dvou hodnot - „Found“ a „NotFound“ a odpovídajícím způsobem skript selže.
Funkce web_reg_find („Text = Welcome“, „SaveCount = WelcomeCount“, „Fail = NotFound“, POSLEDNÍ) tedy v odpovědi vyhledá text „Welcome“ a uloží počet výskytů do parametru „WelcomeCount“ (a selže skript, pokud text nebyl nalezen).
Skript vypadá takto:
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 );
Nyní, když znovu přehráme skript, zobrazí se chyba požadavku na přihlášení (viz protokol přenosu), protože VuGen v odpovědi nenašel text, který jsme zadali. Důvodem je to, že jsme nezískali správnou domovskou stránku (jak je zobrazeno v „prohlížeči run-time“).
Nyní opravíme náš skript (porovnejme relaci uživatele) a znovu si přehrajeme skript.
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 );
Tentokrát nevidíme žádnou chybu v záznamu přehrávání, ale vidíme zprávu, že naše textová kontrola byla úspěšná. Tentokrát jsme tedy dostali správnou odpověď (protože ji potvrzuje ‚runtime viewer‘).
Můžeme kombinovat textové kontroly s transakcemi a nechat VuGen předat transakci, pokud je textová kontrola úspěšná, a selhat transakci, pokud selže textová kontrola.
Toto je uvedeno níže:
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); }
Použili jsme zde příkaz „if“ s atributem „SaveCount“. Parametr „WelcomeCount“ (který ukládá počet výskytů textu) se používá jako podmínka pro předání / selhání transakce. Atributy „LR_PASS“ a „LR_FAIL“ transakčních funkcí se používají k výslovnému předání a neúspěchu transakce.
Poznámka: Zde jsme použili dvě nové funkce - „Atoi“ a „Lr_eval_string“ . O těchto funkcích si povíme později.
Několik dalších informací o kombinaci atributů funkce ‘web_reg_find’:
# 1) Je-li použit pouze atribut „Text“ -
Příklad: web_reg_find („Text = Vítejte“, POSLEDNÍ) -
VuGen vyhledá text a selže skript, pokud je vyhledávání neúspěšné.
# 2) Jsou-li použity pouze atributy „Text“ a „SaveCount“ -
Příklad: web_reg_find (“Text = Vítejte”, “SaveCount = WelcomeCount”, POSLEDNÍ) - VuGen vyhledá text a uloží počet výskytů (i když je nulový) do zadaného parametru (při neúspěšném hledání nezklame skript ).
# 3) Jsou-li použity pouze atributy „Text“ a „Selhat“ -
Příklad: web_reg_find („Text = Vítejte“, „Fail = NotFound“, POSLEDNÍ) - VuGen vyhledá text a selže ve skriptu, pokud je text nalezen / nebyl nalezen.
Kontroly textu lze také vložit během nahrávání pomocí ikony „Vložit kontrolu textu“ na plovoucím panelu nahrávání. Tím se vloží stejné „Web_reg_find“ funkce do skriptu.
Ale je lepší, když tuto funkci vložíme ručně, protože budeme mít lepší kontrolu hlavně nad atributy.
Kontrolu textu jsme pochopili jasně, pojďme nyní ke kontrole obrázků.
Kontrola obrázku se používá k ověření přítomnosti určitého obrázku v odpovědi. „ web_image_check “ funkce se používá pro kontrolu obrazu. Tuto funkci je nutné umístit za požadavek (v jehož reakci očekáváme obrázek).
Příklad této funkce:
web_image_check(“Image”,”Src=/WebTours/images/flights.gif”,LAST)
Pokud je prvním atributem jakýkoli smysluplný název a druhým atributem („Src“) je název / odkaz na obrázek (úplný seznam atributů naleznete v nápovědě VuGen).
Komentáře ve skriptu VuGen
Komentáře ve skriptu VuGen lze zadávat během nahrávání a také ručně po zaznamenání skriptu.
Během nahrávání klikněte na „Vložit komentář“ ikona na plovoucí záznamové liště.
Zadejte komentář (řekněte „Přihlásit se“ zde).
Po nahrávání můžeme vidět komentáře ve skriptu, jak je uvedeno níže.
/* 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',
Ve VuGenu lze jeden řádek komentovat pouhým vložením znaku „//“ před řádek, jak je znázorněno níže:
// 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');
Více řádků lze propojit tak, že na začátek umístíte znak „/ *“ a na konec znak „* /“ (jak je znázorněno níže)
/* 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'); */
Poznámka: V příkladech uvedených výše jsme komentovali funkce souborů cookie ( web_add_cookie ). O funkcích cookies budeme hovořit později v této sérii tutoriálů.
Je dobrým zvykem vkládat komentáře v každém kroku během nahrávání, protože nám to pomůže propojit požadavky ve skriptu s akcemi uživatele v aplikaci.
Rendezvous Point ve skriptu VuGen
Pokud máme scénář, kdy větší počet uživatelů provádí v aplikaci akci současně (například kontrolu výsledků), a pokud musíme simulovat totéž v našem testu výkonu, můžeme použít „Rendezvous point“.
„Bod Rendezvous“ je jednoduchá a jednoduchá funkce ve skriptu VuGen, která instruuje běžec načítání (během testu s více uživateli), aby počkal v určitém kroku skriptu, dokud všichni Vusers (provádějící skript) k tomuto kroku nepřijdou, takže tento následný požadavek lze provést současně.
Syntaxe funkce Rendezvous je:
lr_rendezvous(“MeaningfulName”);
Tuto funkci lze vložit během nahrávání a také ručně po zaznamenání skriptu.
Předpokládejme, že chceme v naší aplikaci „Webové zájezdy“ současně zatěžovat platební krok. Během nahrávání v tomto kroku (před odesláním platebních údajů) klikněte na ikonu „Vložit Rendezvous“ na plovoucí záznamové liště.
A zadejte název bodu setkání (jakýkoli smysluplný název).
Po nahrávání můžeme ve skriptu vidět funkci rendezvous, jako je tato.
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 );
Když nyní spustíme tento skript s více uživateli v řadiči, skript bude spuštěn Vusers nezávisle, ale Vusers počká v tomto kroku 'Platba', dokud všichni (nebo určité procento Vusers definovaných v zásadách Rendezvous) nedosáhnou tohoto kroku, po kterém provedou tento krok současně.
Uvidíme více o zásadách setkání (možnosti) v tutoriálu Controller.
Závěr
Až dosud jsme v tomto kurzu diskutovali o korelaci a parametrizaci a v tomto kurzu jsme se zabývali kontrolami, kontrolami textu / obrázků, komentáři a Rendezvous body, také jsme se zabývali nejdůležitějšími metodami vylepšení skriptu.
V našem dalším kurzu uvidíme další skriptovací výzvy spolu se způsoby, jak s nimi zacházet.
=> Navštivte zde a získejte kompletní řadu výukových programů LoadRunner
Výukový program PREV | DALŠÍ výuka
Doporučené čtení
- Testování zátěže s výukovými programy HP LoadRunner
- Úvod do nástroje Micro Focus LoadRunner - testování zatížení pomocí průvodce LoadRunner # 1
- Korelace - testování zátěže pomocí nástroje LoadRunner
- Výukový program LoadRunner pro začátečníky (bezplatný 8denní hloubkový kurz)
- Analýza výsledků testů a zprávy - testování zátěže pomocí nástroje LoadRunner
- Testování výkonu webových služeb pomocí skriptování LoadRunner VuGen
- Rozdíl mezi LoadRunner a Performance Center
- Jak nastavit soubory skriptu LoadRunner VuGen a nastavení běhového prostředí