Parametriranje, funkcije, transakcije u LoadRunneru

Snimljena skripta može simulirati virtualnog korisnika; međutim, samo snimanje možda neće biti dovoljno za repliciranje "pravog ponašanja korisnika".

Kada je skripta snimljena, ona pokriva jedan i ravan tijek predmetne aplikacije. S druge strane, stvarni korisnik može izvesti višestruke iteracije bilo kojeg procesa prije nego što se odjavi. Odgoda između klikanja gumba (vrijeme razmišljanja) razlikuje se od osobe do osobe. Postoje šanse da neki stvarni korisnici pristupaju vašoj aplikaciji putem DSL-a, a neki joj pristupaju putem dial-upa. Dakle, kako bismo dobili pravi dojam krajnjeg korisnika, moramo poboljšati naše skripte kako bi se točno podudarale ili barem vrlo bliske ponašanju stvarnim korisnicima.

Gore navedeno je najvažnije razmatranje prilikom provođenja "Ispitivanje performansi“, ali postoji više od VU skripte. Kako ćete izmjeriti točnu količinu vremena potrebnog VUser-u kada SUL prolazi test performansi? Kako biste znali je li VUser prošao ili nije uspio u određenom trenutku? Koji je uzrok kvara, je li neki pozadinski proces zakazao ili su resursi poslužitelja bili ograničeni?

Moramo unaprijediti našu skriptu kako bismo odgovorili na sva gore navedena pitanja.

Korištenje Transakcija

Transakcije su mehanika za mjerenje vremena odgovora poslužitelja za bilo koju operaciju. Jednostavnim riječima, korištenje "Transakcije" pomaže u mjerenju vremena koje je sustavu potrebno za određeni zahtjev. Može biti samo klik gumba ili AJAX poziv nakon gubitka fokusa iz tekstualnog okvira.

Primjena transakcija je jednostavna. Samo napišite jednu liniju koda prije nego što se zahtjev uputi poslužitelju i zatvorite transakciju kada zahtjev završi. LoadRunner zahtijeva samo niz kao naziv transakcije.

Za otvaranje transakcije upotrijebite ovaj redak koda:

lr_start_transaction(“Transaction Name”);

Za zatvaranje transakcije upotrijebite ovaj redak koda:

lr_end_transaction(“Transaction Name”, <status>);

The govori LoadRunneru je li ova transakcija bila uspješna ili neuspješna. Mogući parametri mogu biti:

  • LR_AUTO
  • LR_PASS
  • LR_GREŠKA

Primjer:

lr_end_transaction(“Moja_prijava”, LR_AUTO);
lr_end_transaction(“001_Otvaranje_Naziv nadzorne ploče”, LR_PASS);
lr_end_transaction("Naziv_transakcije_tijeka_poslovanja", LR_FAIL);

Bilješke:

  • Ne zaboravite, radite sa "C" i to je jezik koji razlikuje velika i mala slova.
  • Znak točke (.) nije dopušten u nazivu transakcije, iako možete koristiti razmake i podvlaku.
  • Ako ste dobro razgranali svoj kod i dodali kontrolne točke za provjeru odgovora s poslužitelja, možete koristiti prilagođeno rukovanje pogreškama, kao što je LR_PASS ili LR_FAIL. Inače, možete koristiti LR_AUTO i LoadRunner će automatski obraditi grešku poslužitelja (HTTP 500, 400 itd.)
  • Prilikom primjene transakcija, uvjerite se da nema vrijeme_za_misli Izvadak bude u sendviču ili će u suprotnom vaša transakcija uvijek uključivati ​​to razdoblje.
  • Budući da LoadRunner zahtijeva stalni niz kao naziv transakcije, čest problem kod primjene transakcije je nepodudaranje niza. Ako date različito ime prilikom otvaranja i zatvaranja transakcije, dobit ćete najmanje 2 pogreške. Budući da transakcija koju ste otvorili nikada nije zatvorena, LoadRunner će dati pogrešku. Osim toga, transakcija koju pokušavate zatvoriti nikada nije otvorena, što je rezultiralo pogreškom.
  • Možete li upotrijebiti svoju inteligenciju i sami sebi odgovoriti koja će od navedenih grešaka biti prva prijavljena? Kako biste potvrdili svoj odgovor, zašto ne biste sami pogriješili? Ako ste točno odgovorili, na pravom ste putu. Ako ste pogrešno odgovorili, morate se usredotočiti.
  • Budući da LoadRunner automatski brine o sinkronizaciji zahtjeva i odgovora, nećete morati brinuti o odgovoru prilikom primjene transakcija.

Razumijevanje vremena za razmišljanje, točaka susreta i komentara

Točke susreta

Rendezvous Points znači "mjesta susreta". To je samo jedan redak izjave koji govori LoadRunneru da uvede konkurentnost. Točke susreta umetnete u VUser skripte kako biste emulirali veliko korisničko opterećenje na poslužitelju.

Točke susreta upućuju VUser-a da tijekom izvođenja testa čeka da više VUser-a stigne na određenu točku, tako da mogu istodobno izvršiti zadatak. Na primjer, za emulaciju vršnog opterećenja na poslužitelju banke, možete umetnuti točku susreta koja upućuje 100 VUser-a da u isto vrijeme polože gotovinu na svoje račune. To se može lako postići korištenjem rendezvousa.

Ako točke susreta nisu pravilno postavljene, VUser će pristupati različitim dijelovima aplikacije – čak i za istu skriptu. To je zato što svaki VUser dobiva drugačije vrijeme odgovora i stoga malo korisnika zaostaje.

Sintaksa: lr_rendesvous("Logički naziv");

Najbolje prakse:

  • Dodajte mjesto susreta s "rdv_" za bolju čitljivost koda; npr. “rdv_Login”
  • Uklonite sve izjave o trenutnom vremenu razmišljanja
  • Primjena točaka susreta u prikazu skripte (nakon snimanja)

Točke susreta

Komentari

Dodajte komentare za opis aktivnosti, dijela koda ili retka koda. Komentari pomažu da kôd bude razumljiv svima koji ga budu koristili u budućnosti. Oni pružaju informacije o određenim operacijama i odvajaju dva odjeljka radi razlikovanja.

Možete dodati komentare

  • Tijekom snimanja (pomoću alata)
  • Nakon snimanja (izravno pisanje koda)

Najbolji način iz prakse: Označite sve komentare na vrhu svake datoteke skripte

Umetanje funkcija kroz izbornik

Iako možete izravno napisati jednostavne retke koda, možda će vam trebati trag da se prisjetite funkcije. Također možete koristiti Steps Toolbox (poznat kao Insert Function prije verzije 12) da pronađete i umetnete bilo koju funkciju izravno u svoju skriptu.

Alatnu traku koraka možete pronaći pod View àSteps Toolbox.

Umetanje funkcija kroz izbornik

Ovo će otvoriti bočni prozor, pogledajte snimku:

Umetanje funkcija kroz izbornik

Što je parametrizacija?

A parametar u VUGen je spremnik koji sadrži snimljenu vrijednost koja se zamjenjuje za različite korisnike.

Tijekom izvođenja skripte (u VUGen ili Controlleru), vrijednost iz vanjskog izvora (kao što je .txt, XML ili baza podataka) zamjenjuje prethodnu vrijednost parametra.

Parametrizacija je korisna u slanju dinamičkih (ili jedinstvenih) vrijednosti na poslužitelj, na primjer; poslovni proces se želi pokrenuti 10 iteracija, ali svaki put bira jedinstveno korisničko ime.

Također pomaže u stimuliranju stvarnog ponašanja subjektnog sustava. Pogledajte donji primjer:

Primjeri problema:

Poslovni proces radi samo za trenutni datum koji dolazi s poslužitelja, stoga se ne može proslijediti kao tvrdo kodirani zahtjev.

Ponekad klijentska aplikacija prosljeđuje jedinstveni ID poslužitelju (na primjer session_id) kako bi se proces nastavio (čak i za jednog korisnika) – u tom slučaju parametrizacija pomaže.

Često klijentska aplikacija održava predmemoriju podataka koji se šalju na i s poslužitelja. Kao rezultat toga, poslužitelj ne prima stvarno korisničko ponašanje (u slučaju da poslužitelj izvodi različite algoritme ovisno o kriterijima pretraživanja). Iako će se VUser skripta uspješno izvršiti, nacrtana statistika izvedbe neće imati smisla. Korištenje različitih podataka kroz parametrizaciju pomaže u oponašanju aktivnosti na strani poslužitelja (procedure itd.) i vježbanju sustava.

Datum koji je tvrdo kodiran u VUser-u tijekom snimanja možda više neće biti valjan kada taj datum prođe. Parametriranje datuma omogućuje uspješno izvršenje VUsera zamjenom tvrdo kodiranog datuma. Takva polja ili zahtjevi su pravi kandidati za parametrizaciju.

Kliknite ovdje ako video nije dostupan

Postavke vremena rada i njihov utjecaj na VU simulaciju

Postavke vremena izvođenja jednako su važne kao i vaša VUGen skripta. S različitim konfiguracijama možete dobiti različite dizajne testova. Zbog toga biste mogli dobiti neponovljive rezultate ako postavke vremena izvođenja nisu dosljedne. Raspravljajmo o svakom atributu jedan po jedan.

Run Logic

Run Logic definira koliko će se puta sve radnje izvršiti, osim vuser_init i vuser_end.

Vjerojatno ovo pojašnjava zašto LoadRunner predlaže zadržavanje cijelog koda za prijavu unutar vuser_init, a dijela za odjavu u vuser_end, oba isključivo.

Ako ste izradili više radnji, recimo, Prijava, Otvaranje zaslona, ​​Izračunavanje najamnine, Slanje sredstava, Provjera stanja i odjava, tada će se za svakog VUser-a dogoditi sljedeći scenarij:

Svi VUsers će se prijaviti, izvršiti Open Screen, Calculate Rental, Submit Funds, Check Balance – zatim – ponovno Open screen, Calculate rentals…i tako dalje – ponavljajući 10 puta – nakon čega slijedi odjava (jednom).

Run Logic

Ovo je moćna postavka koja vam omogućuje da se više ponašate kao pravi korisnik. Zapamtite, pravi korisnik se ne prijavljuje i odjavljuje svaki put – on obično ponavlja iste korake.

Koliko puta kliknete na "inbox" kada provjeravate svoju e-poštu prije odjave?

elektrostimulacija

Ovo je važno. Uglavnom ljudi ne mogu razumjeti razliku između tempa i vremena razmišljanja. Jedina razlika je, "tempo se odnosi na kašnjenje između ponavljanja", dok mislite da je vrijeme kašnjenje između bilo koja 2 koraka.

Preporučena postavka ovisi o dizajnu testa. Međutim, ako želite imati agresivno opterećenje, razmislite o odabiru "Čim završi prethodna iteracija"

elektrostimulacija

Dnevnik

Dnevnik (kako se općenito razumije) je knjigovodstvo svih događaja dok pokrećete LoadRunner. Možete omogućiti zapisnik da biste znali što se događa između vaše aplikacije i vašeg poslužitelja.

LoadRunner daje moćan mehanizam za bilježenje koji je sam robustan i skalabilan. Omogućuje vam da zadržite samo "Standardni zapisnik" ili detaljan prošireni dnevnik koji se može konfigurirati ili ga potpuno onemogućite.

Standardni dnevnik je informativan i lako razumljiv. Sadrži pravu količinu znanja koja će vam općenito trebati za rješavanje problema s VUser skriptama.

U slučaju proširenog dnevnika, sve informacije standardnog dnevnika su podskup. Dodatno, možete imati zamjenu parametara. Ovo govori komponenti LoadRunner da uključi potpune informacije o svim parametrima (iz parametrizacije), uključujući zahtjeve, kao i podatke o odgovorima.

Ako uključite "Podatke koje je vratio poslužitelj", vaš će dnevnik biti dugačak. Ovo će uključivati ​​sav HTML, oznake, resurse, informacije koje nisu resursi uključene izravno u zapisnik. Opcija je dobra samo ako trebate ozbiljno rješavanje problema. Obično je zbog toga datoteka dnevnika vrlo velika i nije lako razumljiva.

Kao što ste do sada mogli pretpostaviti, ako se odlučite za "Advance Trace", vaša će datoteka dnevnika biti golema. Morate probati. Primijetit ćete da se vrijeme potrebno VUGen-u također značajno povećalo, iako to neće imati utjecaja na vrijeme odziva transakcije o kojem izvještava VUGen. Međutim, ovo su vrlo napredne informacije i mogu biti korisne ako razumijete predmetnu aplikaciju, komunikaciju između klijenta i poslužitelja između vaše aplikacije i hardvera kao i detalje na razini protokola. Obično su ove informacije mrtve u suštini jer zahtijevaju velike napore da se razumiju i otklone.

Dnevnik

Savjet:

  • Bez obzira na to koliko VUGen-u treba vremena kada je zapisnik omogućen, nema utjecaja na vrijeme odziva transakcije. HP ovaj fenomen naziva "najsuvremenijom tehnologijom".
  • Onemogući zapisnik ako nije potreban.
  • Onemogućite zapisnik kada završite sa svojim skriptama. Uključivanje skripti s omogućenim zapisivanjem uzrokovat će sporiji rad kontrolera i prijavljivanje dosadnih poruka.
  • Onemogućavanje zapisnika će povećati kapacitet maksimalnog broja korisnika koje možete simulirati iz LoadRunnera.
  • Razmislite o korištenju opcije "Pošalji poruku samo kada se pojavi pogreška" - ovo će isključiti nepotrebne informativne poruke i prijaviti samo poruke povezane s pogreškom.

Think Times

Think Time je jednostavno kašnjenje između dva koraka.

Think Time pomaže replicirati ponašanje korisnika jer niti jedan stvarni korisnik ne može koristiti nijednu aplikaciju kao stroj (VUGen). VUGen automatski generira vrijeme za razmišljanje. Još uvijek imate potpunu kontrolu nad uklanjanjem, umnožavanjem ili fluktuacijom trajanja vremena razmišljanja.

Da bi razumio više, na primjer, korisnik može otvoriti zaslon (to je odgovor nakon kojeg slijedi zahtjev) i zatim unijeti svoje korisničko ime i lozinku prije nego što pritisne enter. Sljedeća interakcija aplikacije s poslužiteljem dogodit će se kada on klikne na “Prijava”. Vrijeme koje je korisniku trebalo da upiše svoje korisničko ime i lozinku je Think Time u LoadRunneru.

Think Times

Ako želite simulirati agresivno opterećenje aplikacije, razmislite o potpunom onemogućavanju vremena za razmišljanje.

Međutim, kako biste simulirali stvarno slično ponašanje, možete "Korisničko nasumično vrijeme razmišljanja" i postaviti postotke po želji.

Razmislite o korištenju Ograničite vrijeme za razmišljanje na legitimno razdoblje. Obično je 30 sekundi sasvim dovoljno.

Simulacija brzine

Simulacija brzine jednostavno se odnosi na kapacitet propusnosti za svaki klijentski stroj.

Budući da simuliramo tisuće VUser-a kroz LoadRunner, nevjerojatno je koliko je LoadRunner napravio jednostavan za kontrolu simulacije propusnosti/brzine mreže.

Ako ste klijenti koji pristupaju vašoj aplikaciji preko 128 Kbps, možete je kontrolirati odavde. Moći ćete simulirati "stvarno slično ponašanje" što bi trebalo pomoći u dobivanju prave statistike izvedbe.

Simulacija brzine

Najbolja preporuka je postaviti na Koristi maksimalnu propusnost. To će pomoći da se zanemaruju sva uska grla u radu povezana s mrežom i prvo se usredotočite na sve potencijalne probleme u aplikaciji. Uvijek možete pokrenuti test više puta kako biste vidjeli različito ponašanje u različitim okolnostima.

Emulacija preglednika

Korisničko iskustvo ne ovisi o pregledniku koji krajnji korisnik koristi. Jasno je da je to izvan opsega mjera izvedbe. Međutim, možete odabrati koji preglednik želite emulirati.

Emulacija preglednika

Možete li sami sebi odgovoriti kada će vam točno biti važno odabrati pravi preglednik u ovoj konfiguraciji?

Koristit ćete ovu konfiguraciju ako je predmetna aplikacija web aplikacija koja vraća različite odgovore za različite preglednike. Na primjer, možete vidjeti različite slike i sadržaje za IE i Firefox i tako dalje

Druga važna postavka je Simulacija predmemorije preglednika. Ako želite izmjeriti vrijeme odgovora kada je predmemorija omogućena, označite ovaj okvir. Ako tražite situaciju u najgorem slučaju, to očito ne dolazi u obzir.

Preuzimanje resursa koji nisu HTML omogućit će LoadRunneru preuzimanje bilo kojeg CSS-a, JS-a i drugih bogatih medija. Ovo bi trebalo ostati označeno. Međutim, ako to želite eliminirati iz dizajna testa izvedbe, možete poništiti odabir.

proxy

Najbolje je potpuno ukloniti proxy iz svog Ispitna okolina – to će rezultate ispitivanja učiniti nepouzdanima. Međutim, možete se suočiti sa situacijama u kojima je to neizbježno. U takvoj situaciji, LoadRunner vam olakšava proxy postavke.

Radit ćete (ili biste trebali raditi) bez postavke proxyja. Možete ga dobiti iz zadanog preglednika. Međutim, ne zaboravite provjeriti koji je preglednik postavljen kao zadani i koja je proxy konfiguracija za zadani preglednik.

proxy

Ako koristite proxy i zahtijeva autentifikaciju (ili skriptu), tada možete kliknuti na gumb Authenticate koji vodi do novog prozora. Pogledajte snimak zaslona u nastavku.

proxy

Koristite ovaj zaslon za unos korisničkog imena i lozinke za provjeru autentičnosti na proxy poslužitelju. Pritisnite U redu za zatvaranje ekrana.

Čestitamo. Završili ste s konfiguracijom vaše VUGen skripte. Ne zaboravite ga konfigurirati za sve svoje VUser skripte.