Snimljena skripta može simulirati virtualnog korisnika; međutim, samo snimanje možda neće biti dovoljno za preslikavanje "stvarnog ponašanja korisnika".
Kad se skripta zabilježi, ona pokriva pojedinačni i ravni tok predmetne aplikacije. Dok stvarni korisnik može izvesti više iteracija bilo kojeg postupka prije nego što se odjavi. Kašnjenje između klika na gumbe (vrijeme razmišljanja) razlikovat će se od osobe do osobe. Šanse su da neki stvarni korisnici pristupaju vašoj aplikaciji putem DSL-a, a neki putem dial-up-a. Dakle, da bismo imali stvarni osjećaj krajnjeg korisnika, moramo poboljšati naše skripte kako bi se točno podudarale ili barem vrlo bliske u ponašanju stvarnim korisnicima.
Navedeno je najvažnije razmatranje pri provođenju "ispitivanja izvedbe", ali VU skripta sadrži više. Kako ćete procijeniti točno vrijeme koje VUser provodi dok SUL prolazi kroz test izvedbe? Kako biste znali je li VUser u određenom trenutku prošao ili nije uspio? Koji je uzrok neuspjeha, je li neki pozadinski postupak propao ili su resursi poslužitelja bili ograničeni?
Moramo poboljšati našu skriptu kako bismo pomogli odgovoriti na sva gore navedena pitanja.
- Korištenje transakcija
- Razumijevanje vremena razmišljanja, susreta i komentara
- Umetanje funkcija kroz izbornik
- Što je parametrizacija?
- Postavke vremena izvođenja i njihov utjecaj na VU simulaciju
- Pokreni logiku
- Hodajući
- Dnevnik
- Think Times
- Simulacija brzine
- Emulacija preglednika
- Proxy
Korištenje transakcija
Transakcije su mehanika kojom se mjeri vrijeme odziva poslužitelja za bilo koju operaciju. Jednostavnim riječima, upotreba "Transakcije" pomaže u mjerenju vremena koje je sustavu potrebno za određeni zahtjev. Može biti mali kao klik gumba ili AJAX poziv nakon gubitka fokusa iz tekstualnog okvira.
Primjena transakcija je jednostavna. Samo napišite jedan redak koda prije nego što se zahtjev uputi poslužitelju i zatvorite transakciju kada zahtjev završi. LoadRunner zahtijeva samo niz kao naziv transakcije.
Da biste otvorili transakciju, upotrijebite ovaj redak koda:
lr_start_transaction (“Naziv transakcije”);
Da biste zatvorili transakciju, upotrijebite ovaj redak koda:
lr_end_transaction (“Naziv transakcije”,);
- LR_AUTO
- LR_PASS
- LR_FAIL
Primjer:
lr_end_transaction (“My_Login”, LR_AUTO);
lr_end_transaction (“Naziv poslovnog_teksta_transakcije”, LR_FAIL);
Bilješke:
- Ne zaboravite, radite s "C" i to je jezik koji razlikuje velika i mala slova.
- Znak razdoblja (.) Nije dozvoljen u nazivu transakcije, iako možete koristiti razmake i donju crtu.
- Ako ste dobro razgranali kôd i dodali kontrolne točke za potvrdu odgovora poslužitelja, možete koristiti prilagođeno rukovanje pogreškama, poput LR_PASS ili LR_FAIL. U suprotnom, možete koristiti LR_AUTO i LoadRunner će automatski obraditi pogrešku poslužitelja (HTTP 500, 400 itd.)
- Kada primjenjujete transakcije, osigurajte da se ne stavlja izjava think_time ili će u suprotnom vaša transakcija uvijek sadržavati to razdoblje.
- Budući da LoadRunner zahtijeva konstantni niz kao naziv transakcije, čest problem prilikom primjene transakcije je neusklađenost niza. Ako date drugo ime prilikom otvaranja i zatvaranja transakcije, pojavit će se najmanje 2 pogreške. Budući da transakcija koju ste otvorili nikada nije zatvorena, LoadRunner će stvoriti pogrešku. Osim toga, transakcija koju pokušavate zatvoriti nikada nije otvorena, što je rezultiralo pogreškom.
- Možete li upotrijebiti svoju inteligenciju i odgovoriti sami sebi koja će se od gore navedenih pogrešaka prvo prijaviti? Da biste potvrdili svoj odgovor, zašto ne biste pogriješili? Ako ste dobro odgovorili, na pravom ste putu. Ako ste krivo odgovorili, morate se usredotočiti.
- Budući da se LoadRunner automatski brine o sinkronizaciji zahtjeva i odgovora, nećete morati brinuti o odgovoru prilikom primjene transakcija.
Razumijevanje vremena razmišljanja, susreta i komentara
Tačke susreta
Tačke susreta znače „mjesta susreta“. Samo je jedan redak izjave koji LoadRunneru govori da uvede paralelnost. Umetnete točke susreta u VUser skripte kako biste oponašali veliko opterećenje korisnika na poslužitelju.
Točke susreta upućuju VUser-a da pričeka tijekom izvođenja testa da više VUser-a stigne u određenu točku, kako bi istovremeno mogao izvršiti zadatak. Na primjer, za oponašanje vršnog opterećenja na bankarskom poslužitelju možete umetnuti mjesto susreta s uputama 100 VUser-u da istodobno položi gotovinu na svoje račune. To se lako može postići pomoću sastanka.
Ako mjesta susreta nisu pravilno postavljena, VUser će pristupiti različitim dijelovima aplikacije - čak i za istu skriptu. To je zato što svaki VUser dobiva različito vrijeme odziva i stoga malo korisnika zaostaje.
Sintaksa: lr_rendesvous (“Logički naziv”);
Najbolje prakse:
- Prefiksom točke susreta stavite "rdv_" za bolju čitljivost koda; npr. "rdv_Login"
- Uklonite sve trenutne izjave o vremenu razmišljanja
- Primjena točaka susreta u prikazu skripte (nakon snimanja)
Komentari
Dodajte komentare da biste opisali aktivnost, dio koda ili redak koda. Komentari pomažu da kôd postane razumljiv svima koji se budu pozivali na njega. 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 u kodu)
Najbolja praksa: Označite bilo koji komentar na vrhu svake datoteke skripte
Umetanje funkcija kroz izbornik
Iako možete izravno pisati jednostavne retke koda, možda će vam trebati trag za pozivanje funkcije. Također možete koristiti Kutiju alata za korake (poznatu kao Umetni funkciju prije verzije 12) da biste pronašli i umetnuli bilo koju funkciju izravno u vašu skriptu.
Alatnu traku Steps možete pronaći pod View àSteps Toolbox.
Ovo će otvoriti bočni prozor, pogledajte snimku:
Što je parametrizacija?
Parametar u VUGen je spremnik koji sadrži snimljene vrijednosti koji je zamijenjen za razne korisnike.
Tijekom izvršavanja skripte (u VUGenu ili Controlleru), vrijednost iz vanjskog izvora (poput .txt, XML ili baze podataka) zamjenjuje prethodnu vrijednost parametra.
Parametriranje je korisno u slanju dinamičkih (ili jedinstvenih) vrijednosti na poslužitelj, na primjer; poželjan je poslovni proces koji treba pokrenuti 10 ponavljanja, ali svaki put odabirom jedinstvenog korisničkog imena.
Također pomaže u poticanju stvarnog ponašanja na predmetni sustav. 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 poslužitelju pošalje jedinstveni ID (na primjer session_id) da bi se proces nastavio (čak i za jednog korisnika) - u takvom slučaju parametarizacija pomaže.
Klijentska aplikacija često održava predmemoriju podataka koji se šalju na poslužitelj i s njega. Kao rezultat toga, poslužitelj ne prima stvarno ponašanje korisnika (u slučaju da poslužitelj pokreće drugačiji algoritam, ovisno o kriterijima pretraživanja). Iako će se skripta VUser uspješno izvršavati, nacrtana statistika izvedbe neće biti značajna. Korištenje različitih podataka pomoću parametrizacije pomaže u oponašanju aktivnosti na strani poslužitelja (postupci itd.) I vježbanju sustava.
Datum koji je čvrsto kodiran u VUser-u tijekom snimanja možda više neće biti valjan kad taj datum prođe. Parametriranje datuma omogućuje izvršavanje VUser-a zamjenom čvrsto kodiranog datuma. Takva polja ili zahtjevi pravi su kandidati za parametriranje.
Kliknite ovdje ako videozapis nije dostupan
Postavke vremena izvođenja i njihov utjecaj na VU simulaciju
Postavke vremena izvođenja jednako su značajne kao i vaša VUGen skripta. S različitim konfiguracijama možete dobiti različite dizajne ispitivanja. Zbog toga ćete možda doći do neponovljivih rezultata ako postavke vremena izvođenja nisu dosljedne. Razmotrimo svaki atribut jedan po jedan.
Pokreni logiku
Logika pokretanja definira koliko će se puta izvršavati sve radnje, osim vuser_init i vuser_end.
Vjerojatno je ovo jasnije zašto LoadRunner predlaže da se sav Login kod zadrži unutar vuser_init, a odjavni dio isključivo u vuser_end.
Ako ste stvorili više radnji, recimo, prijavite se, otvorite zaslon, izračunajte najam, pošaljite sredstva, provjerite stanje i odjavite se, tada će se za svaki VUser izvršiti donji scenarij:
Svi Korisnici će se prijaviti, izvršiti otvoreni zaslon, izračunati najam, poslati sredstva, provjeriti stanje - zatim - opet otvoreni zaslon, izračunati najamnine ... i tako dalje - ponavljanje 10 puta - nakon čega slijedi odjava (jednom).
Ovo je moćna postavka koja omogućava da se ponašate više poput pravog korisnika. Zapamtite, stvarni se korisnik ne prijavljuje i odjavljuje svaki put - on obično ponavlja iste korake.
Koliko puta kliknete "inbox" prilikom provjere e-pošte prije odjave?
Hodajući
Ovo je važno. Uglavnom ljudi nisu u stanju razumjeti razliku između koraka i vremena razmišljanja. Jedina je razlika u tome što se "koračanje koraka odnosi na kašnjenje između iteracija", dok je vrijeme razmišljanja kašnjenje između bilo koja 2 koraka.
Preporučena postavka ovisi o dizajnu ispitivanja. Međutim, ako želite imati agresivno opterećenje, razmislite o odabiru "Čim prethodna iteracija završi"
Dnevnik
Zapisnik (kako se općenito razumije) je vođenje 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 robustan i skalabilan sam za sebe. Omogućuje vam zadržavanje samo "Standardnog dnevnika" ili detaljnog, prilagodljivog proširenog dnevnika ili ga potpuno onemogućiti.
Standardni dnevnik je informativan i lako razumljiv. Sadrži upravo pravu količinu znanja koja će vam obično trebati za rješavanje problema s VUser skriptama.
U slučaju Proširenog dnevnika, svi standardni podaci dnevnika su podskup. Uz to, možete imati zamjenu parametara. To poručuje komponenti LoadRunner da sadrži kompletne informacije o svim parametrima (od parametrizacije), uključujući zahtjeve, kao i podatke o odgovoru.
Ako uključite "Podaci koje je vratio poslužitelj", vaš će zapisnik trajati dulje. To će uključivati sve HTML, oznake, resurse, podatke koji nisu izvori uključeni izravno u zapisnik. Opcija je dobra samo ako trebate ozbiljno riješiti probleme. To obično čini datoteku dnevnika vrlo velikom i nije lako razumljivu.
Kao što ste do sada mogli pretpostaviti ako se odlučite za "Advance Trace", datoteka dnevnika bit će masivna. Morate probati. Primijetit ćete kako se i vrijeme koje je VUGen oduzeo značajno povećalo, iako to neće imati utjecaja na vrijeme odziva transakcije koje je prijavio VUGen. Međutim, ovo su vrlo napredne informacije i možda 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 u biti mrtve jer zahtijevaju iznimne napore da bi se razumjeli i riješili problemi.
Savjeti:
- Bez obzira na to koliko vremena VUGen treba kada je zapisnik omogućen, to nema utjecaja na vrijeme odziva transakcije. HP ovaj fenomen naziva "vrhunskom tehnologijom".
- Onemogući zapisnik ako nije potreban.
- Onemogućite zapisnik kada završite sa svojim skriptama. Uključivanje skripti s omogućenom evidencijom prouzročit će sporije pokretanje kontrolera i prijavljivanje mučnih poruka.
- Onemogućivanje dnevnika povećat će kapacitet maksimalnog broja korisnika koje možete simulirati iz LoadRunnera.
- Razmislite o upotrebi opcije "Pošalji poruku samo kada se dogodi pogreška" - ovo će isključiti nepotrebne informativne poruke i prijaviti samo poruke povezane s pogreškama.
Think Times
Think Time je jednostavno kašnjenje između dva koraka.
Think Time pomaže u repliciranju ponašanja korisnika jer niti jedan stvarni korisnik ne može koristiti bilo koju aplikaciju poput stroja (VUGen). VUGen automatski generira vrijeme razmišljanja. Još uvijek imate potpunu kontrolu nad uklanjanjem, umnožavanjem ili kolebanjem trajanja vremena razmišljanja.
Da bi razumio više, na primjer, korisnik može otvoriti zaslon (to je odgovor nakon kojeg slijedi zahtjev), a zatim mu dati korisničko ime i lozinku prije nego što pritisne enter. Sljedeća interakcija aplikacije s poslužiteljem dogodit će se kad klikne "Prijavi se". Korisniku je potrebno vrijeme da upiše svoje korisničko ime i lozinku Think Time u LoadRunner.
Ako želite simulirati agresivno opterećenje aplikacije, razmislite o tome da u potpunosti onemogućite vrijeme razmišljanja.
Međutim, da biste simulirali stvarno slično ponašanje, možete "Korisničko slučajno vrijeme razmišljanja" postaviti i postotke prema želji.
Razmislite o tome da ograničite vrijeme razmišljanja na legitimno razdoblje. Obično je dovoljno 30 sekundi.
Simulacija brzine
Simulacija brzine jednostavno se odnosi na kapacitet propusnosti za svaki klijentski stroj.
Budući da kroz LoadRunner simuliramo tisuće korisnika korisnika, nevjerojatno je kako je LoadRunner napravio jednostavnu kontrolu nad simulacijom propusnosti / brzine mreže.
Ako ste klijenti, pristupite svojoj aplikaciji preko 128 Kbps, možete je kontrolirati odavde. Morat ćete simulirati "stvarno ponašanje", što bi trebalo pomoći u dobivanju prave statistike izvedbe.
Najbolja preporuka je postaviti na Koristi maksimalnu širinu pojasa. To će vam pomoći zanemariti sva uska grla u vezi s izvedbom i usredotočiti se na 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 učinka. Međutim, možete odabrati koji preglednik želite oponašati.
Možete li sami odgovoriti kada će vam zaista biti važno odabrati pravi preglednik u ovoj konfiguraciji?
Ovu ćete konfiguraciju koristiti ako ste predmet 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 itd.
Druga važna postavka je Simuliranje predmemorije preglednika. Ako želite izmjeriti vrijeme odziva kad je predmemorija omogućena, označite ovaj okvir. Ako tražite najgoru situaciju, ovo očito nije razmatranje.
Preuzimanje ne-HTML resursa omogućit će LoadRunneru da preuzme bilo koji CSS, JS i druge bogate medije. Ovo bi trebalo ostati provjereno. Međutim, ako želite ukloniti ovo iz dizajna testa izvedbe, možete ga ukloniti.
Proxy
Najbolje je potpuno ukloniti proxy iz testnog okruženja - to će rezultate testa učiniti nepouzdanima. Međutim, mogli biste se suočiti sa situacijama u kojima je to neizbježno. U takvoj situaciji LoadRunner vam olakšava postavke proxyja.
Radit ćete (ili biste trebali raditi) bez postavke proxy. Možete ga dobiti u zadanom pregledniku. Međutim, ne zaboravite provjeriti koji je preglednik postavljen na zadani i koja je proxy konfiguracija za zadani preglednik.
Ako koristite proxy i zahtijeva provjeru autentičnosti (ili skriptu), tada možete kliknuti gumb Autentifikacija koji vodi u novi prozor. Pogledajte snimku zaslona ispod.
Pomoću ovog zaslona navedite korisničko ime i lozinku za provjeru autentičnosti na proxy poslužitelju. Pritisnite U redu da biste zatvorili zaslon.
Čestitamo. Gotovi ste s konfiguracijom vaše VUGen skripte. Ne zaboravite ga konfigurirati za sve vaše VUser skripte.