Parameetrid, funktsioonid, tehingud LoadRunneris

⚡ Nutikas kokkuvõte

Parameetristamine, tehingud ja käitusaja seaded on kolm täiustust, mis muudavad tavalise VuGeni salvestuse skriptiks, mis käitub nagu päris kasutaja ja annab aru ajastustest, mida saab tegelikult usaldada.

  • 🔘 Tehingud: Aja määramiseks mässi päring lr_start_transaction ja lr_end_transaction elementidesse.
  • ☑️ Staatuse koodid: Sulgege tehing LR_AUTO, LR_PASS või LR_FAIL abil.
  • Kohtumine: Hoidke virtuaalkasutajaid kohtumispunktis, et nad saaksid serverisse koos siseneda.
  • 🧪 Parameetristamine: Asendage kõvakodeeritud kuupäevad, ID-d ja sisselogimised iteratsioonipõhiste väärtustega.
  • 🛠️ Käitusaja seaded: Käivita loogika, tempo, logimine, mõtle ajale, ribalaiusele, brauserile, puhverserverile.
  • 📊 Korratavus: Ebajärjekindlad sätted on kordumatute tulemuste tavaline põhjus.

Parameetristamine, tehingud ja funktsioonid LoadRunner VuGenis

Salvestatud skript võib simuleerida virtuaalset kasutajat; aga pelgalt salvestusest ei pruugi piisata tegeliku kasutaja käitumise jäljendamiseks.

Kui skript salvestatakse, hõlmab see ühte sirget voogu läbi kõnealuse rakenduse. Päris kasutaja võib enne väljalogimist protsessi mitu korda korrata. Nuppude klõpsamise vaheline viivitus (mõtle ajale) on inimeseti erinev ja mõned kasutajad jõuavad teie rakendusse kiire ühenduse kaudu, teised aga mitte. Seega, et saada lõppkasutaja tegeliku tunde, peame oma skripte täiustama, et need käituksid väga sarnaselt päris kasutajate omaga.

See on kõige olulisem kaalutlus läbiviimisel „Jõudluse testimine”, aga VUser-skriptil on enamat. Kuidas mõõta VUseri tööks kuluvat aega koormuse all oleva süsteemi (SUL) testimise ajal? Kuidas teada saada, kas VUser sooritas testi mingil hetkel edukalt või mitte ning kas mõni taustprotsess ebaõnnestus või serveri ressursid said otsa?

Kõigile ülaltoodud küsimustele vastamiseks peame oma skripti täiustama.

Brändi märkus: VuGenit tarniti HP, seejärel Micro Focusana ja see on nüüd osa ettevõttest OpenText Professionaalne jõudlustehnikaAllolevad funktsioonid ja sätted jäävad samaks.

Tehingute kasutamine

Tehingud mõõdavad serveri reageerimisaega mis tahes toimingu puhul. Lihtsamalt öeldes mõõdab „tehing” aega, mis süsteemil konkreetse päringu täitmiseks kulub. See võib olla nii väike kui nupuklõps või AJAX-kõne, mis käivitatakse tekstikasti fookuse kaotamisel.

Tehingute rakendamine on lihtne. Kirjutage enne päringu esitamist üks koodirida ja sulgege tehing pärast päringu lõppu. LoadRunner vajab tehingu nimena ainult stringi.

Tehingu avamiseks kasutage seda koodirida:

lr_start_transaction(“Transaction Name”);

Tehingu sulgemiseks kasutage seda koodirida:

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

The teatab LoadRunnerile, kas see konkreetne tehing oli edukas või ebaõnnestunud. Võimalikud parameetrid võivad olla järgmised:

  • LR_AUTO
  • LR_PASS
  • LR_FAIL

Näide:

lr_end_transaction(“My_Login”, LR_AUTO);
lr_end_transaction(“001_Opening_Dashboard Name”, LR_PASS);
lr_end_transaction(“Business_Workflow_Transaction Name”, LR_FAIL);

Code märkused: Koodijupid on reprodutseeritud täpselt nii, nagu need avaldati, koos tüpograafiliste tsitaatidega. Päris VuGeni skript vajab sirgeid ASCII jutumärke, seega tippige need uuesti, kui kopeerite selle koodi.

Märkused:

  • Ärge unustage, et töötate tähega C ja see on tõstutundlik keel.
  • Punkt (.) ei ole tehingu nimes lubatud, kuigi tühikuid ja alakriipse saab kasutada.
  • Kui olete oma koodi hästi hargnenud ja lisanud kontrollpunktid serveri vastuse kontrollimiseks, saate kasutada kohandatud veakäsitlust, näiteks LR_PASS või LR_FAIL. Vastasel juhul võite kasutada LR_AUTO ja LoadRunner käsitleb serverivigu (HTTP 500, 400 jne) automaatselt.
  • Tehingute rakendamisel veenduge, et sinna ei oleks lisatud mõtlemisaja lauset, vastasel juhul sisaldab teie tehing seda perioodi alati.
  • Kuna LoadRunner nõuab tehingu nimena konstantset stringi, on tehingute rakendamisel levinud probleemiks stringide mittevastavus. Kui annate tehingu avamisel ja sulgemisel erineva nime, saate vähemalt kaks viga. Avatud tehingut ei suletud kunagi, seega annab LoadRunner vea; ja tehingut, mida proovite sulgeda, ei avatud kunagi, mis annab teise vea.
  • Mõlemad vead ilmuvad korduslogisse, seega kontrollige alati, kui kumbagi neist teatatakse, kõigepealt tehingu nime avamis- ja sulgemisavaldusel.
  • Kuna LoadRunner hoolitseb päringute ja vastuste sünkroonimise eest automaatselt, ei pea te tehingute rakendamisel vastuste pärast muretsema.

Kohtumispunktid, kommentaarid ja skriptifunktsioonid

Kolm väiksemat täiustust muudavad skripti käituma ja lugema nagu tootmiskoodi: kohtumispunktid, kommentaarid ja VuGeni sisseehitatud funktsioonide brauser.

Kohtumispunktid

Kohtumispunkt on „kohtumispunkt“. See on üksik lause, mis käsib LoadRunneril sisse viia samaaegsuse. Kohtumispunktid lisatakse VUser-skriptidesse, et jäljendada serveri suurt kasutajakoormust.

Kohtumispunktid annavad VUserile käsu täitmise ajal oodata, kuni mitu VUserit saabuvad teatud punkti, et nad saaksid samaaegselt ülesannet täita. Näiteks pangaserveri tippkoormuse jäljendamiseks sisestage kohtumispunkt, mis annab 100 VUserile käsu sularaha samaaegselt sisse maksta.

Kui kohtumispunktid pole õigesti paigutatud, pääsevad virtuaalkasutajad (VUser) ligi rakenduse erinevatele osadele isegi sama skripti puhul. Selle põhjuseks on asjaolu, et igal VUseril on erinev reageerimisaeg ja seetõttu jäävad mõned kasutajad maha.

süntaksit:

lr_rendezvous(“Logical Name”);

Parandusmärkus: avaldatud lehel on kirjapilt järgmine lr_rendezvousÕige funktsiooni nimi on lr_kohtumispaik; valesti kirjutatud vorm ei kompileeru.

Parimad tavad:

  • Koodi parema loetavuse huvides lisage kohtumispunkti ees "rdv_"; nt "rdv_Login"
  • Eemalda kõik vahetult kõrvutiasetsevad mõtlemisaja laused
  • Rakenda pärast salvestamist skriptivaates kohtumispunkte

Allolev skriptivaade näitab salvestatud toimingusse lisatud kohtumisavaldust:

Skriptivaates salvestatud VuGeni toimingusse lisatud kohtumisavaldus

Kommentaarid

Lisage kommentaare tegevuse, koodijupi või koodirea kirjeldamiseks. Kommentaarid aitavad koodi arusaadavaks teha kõigile, kes sellele tulevikus viitavad. Need annavad teavet konkreetse toimingu kohta ja eraldavad eristamiseks kaks osa.

Saate lisada kommentaare

  • Salvestamise ajal (tööriista kasutades)
  • Pärast salvestamist (otse koodi kirjutamine)

Parim tava: märkige iga skriptifaili ülaosas olevad kommentaarid.

Funktsioonide lisamine menüü kaudu

Kuigi lihtsaid koodiridu saab otse kirjutada, võib funktsiooni meeldejätmiseks vaja minna vihjet. Funktsioonide leidmiseks ja otse skripti lisamiseks saab kasutada ka tööriistakasti Steps (enne versiooni 12 tuntud kui funktsiooni lisamine).

Sammude tööriistakasti leiad menüüst Vaade → Sammude tööriistakast, nagu allpool näidatud.

VuGeni vaatemenüü, kus on esile tõstetud Steps Toolboxi käsk

See avab külgakna. Vaadake hetktõmmist:

Steps Toolboxi külgpaneel, kus on loetletud sisestamiseks saadaolevad VuGeni funktsioonid

Mis on parameetristamine?

VuGeni parameeter on konteiner, mis sisaldab salvestatud väärtust, mida erinevate kasutajate jaoks asendatakse.

Skripti täitmise ajal (VuGenis või kontroller) asendab parameetri eelmise väärtuse välise allika (nt .txt-faili, XML-i või andmebaasi) väärtus.

Parameetristamine on kasulik dünaamiliste (või unikaalsete) väärtuste serverisse saatmiseks. Näiteks võib äriprotsess olla kohustatud käivitama 10 iteratsiooni, valides iga kord unikaalse kasutajanime.

See aitab simuleerida ka reaalse elu käitumist õppeaine süsteemi suhtes. Vaadake allolevaid näiteid.

Probleemi näited:

  • Äriprotsess töötab ainult praeguse kuupäeva jaoks, mis tuleb serverist, seega ei saa seda edastada kõvakodeeritud päringuna.
  • Mõnikord edastab kliendirakendus serverile unikaalse ID (näiteks session_id), et protsess saaks jätkuda isegi ühe kasutaja puhul. Sellisel juhul aitab parameetriseerimine.
  • Tihti hoiab kliendirakendus serverisse saadetavate ja serverist tulevate andmete vahemälu. Selle tulemusel ei saa server tegelikku kasutajakäitumist (kus server käitab otsingukriteeriumidest olenevalt erinevat algoritmi). VUser-skript käivitub edukalt, kuid saadud jõudlusstatistika ei ole oluline. Erinevate andmete kasutamine parameetrite abil aitab jäljendada serveripoolset tegevust, näiteks salvestatud protseduure, ja treenib süsteemi.
  • Salvestamise ajal VUuserisse kõvakodeeritud kuupäev ei pruugi pärast selle kuupäeva möödumist enam kehtida. Kuupäeva parameetriseerimine võimaldab VUseril edukalt käivitada, asendades kõvakodeeritud kuupäeva. Sellised väljad või päringud on parameetriseerimiseks sobivad kandidaadid.

Selle loomiseks paremklõpsake skriptivaates salvestatud väärtusel ja valige „Asenda parameetriga”. Seejärel küsib VuGen, milline tüüp väärtuse annab:

Parameetri tüüp Väärtus, mida see pakub
Fail .dat-faili veerust loetud väärtused.
Tabel Ridade ja veergude plokk korraga.
Kuupäev / kellaaeg Praegune kuupäev ja kellaaeg valitud vormingus.
Juhuslik arv Arv teie määratud vahemikust.
Unikaalne number Eraldiseisev number iga VUseri kohta, algväärtusest ja ploki suurusest lähtuvalt.
Iteratsiooni number Praegune iteratsioonide arv.
Vuseri ID Taasesituse ajal määratud identifikaator.
Grupp / Laadimine Generator Eesnimi VUser grupp või generaatormasin.
XML XML-andmestiku fragment.
Kasutaja defineeritud funktsioon Teie enda teekifunktsiooni tagastatud väärtus.

Kaks täiendavat valikut määravad, kuidas andmeid iteratsioonide vahel tarbitakse:

valik Valikuid Mida see kontrollib
Vali järgmine rida Järjestikune, juhuslik, ainulaadne Millist rida VUser järgmisena loeb.
Väärtuse värskendamine Iga iteratsioon, iga esinemine, üks kord Kui väärtust värskendatakse.

Allolev samm näitab salvestatud skriptile rakendatud parameetrite määramist:

Click siin kui videole ligipääs pole võimalik.

Käitusaja sätted ja nende mõju VUser simulatsioonile

Käitusaja sätted on sama olulised kui teie VuGeni skript. Erinevate konfiguratsioonidega saate saada täiesti erinevaid testidisainilahendusi, mistõttu on ebajärjekindlad käitusaja sätted tavaliselt kordumatute tulemuste põhjuseks. Arutagem iga atribuuti eraldi.

Käivitage Logic

Run Logic määrab, mitu korda kõiki toiminguid, välja arvatud vuser_init ja vuser_end, teostatakse.

See teeb ilmselt selgemaks, miks LoadRunner soovitab kee'iping kogu sisselogimiskood failis vuser_init ja väljalogimisosa failis vuser_end, mõlemad ainult.

Kui olete loonud mitu toimingut – näiteks sisselogimine, ekraani avamine, üüri arvutamine, raha esitamine, saldo kontrollimine ja väljalogimine –, siis toimub iga virtuaalkasutaja jaoks järgmine stsenaarium:

Kõik virtuaalkasutajad logivad sisse, teevad toimingud „Ava ekraan“, „Arvuta üürihind“, „Esita raha“ ja „Kontrolli saldot“, seejärel uuesti „Ava ekraan“, „Arvuta üürihind“ ja nii edasi, korrates seda 10 korda, millele järgneb väljalogimine (üks kord).

VuGeni käitusaja sätete Run Logic paan, mis näitab iteratsioonide arvu

See on võimas säte, mis laseb skriptil käituda nagu päris kasutaja. Pea meeles, et päris kasutaja ei logi iga kord sisse ega välja; tavaliselt kordab ta samu samme.

Mitu korda sa enne väljalogimist e-posti kontrollides vajutad nuppu „Postkast”?

kõndimine

See on oluline. Enamik inimesi ei suuda mõista tempo ja mõtlemisaja erinevust. Ainus erinevus on see, et tempo viitab iteratsioonide vahelisele viivitusele, samas kui mõtlemisaeg on viivitus kahe mis tahes sammu vahel.

Soovitatav säte sõltub testi ülesehitusest. Kui aga soovite rakendada agressiivset koormust, kaaluge allpool näidatud viisil valikut „Niipea kui eelmine iteratsioon lõpeb“.

Käitusaja sätete tempo paan koos iteratsiooni viivituse valikutega

Logi

Üldiselt mõistetakse logina kõigi LoadRunneri käitamise ajal toimunud sündmuste salvestust. Saate logi lubada, et teada saada, mis teie rakenduse ja serveri vahel toimub.

LoadRunner pakub võimsat logimismehhanismi, mis on iseenesest töökindel ja skaleeritav. See võimaldab teil pidada ainult „standardset logi“, üksikasjalikku ja konfigureeritavat laiendatud logi või logimise täielikult keelata.

Standardne logi on informatiivne ja kergesti mõistetav. See sisaldab just parajal hulgal teavet, mida tavaliselt vajate oma VUser-skriptide tõrkeotsinguks.

Laiendatud logi puhul on kogu standardne logiteave alamhulk. Lisaks saab kasutada parameetrite asendamist. See annab LoadRunneri komponendile käsu lisada täielik teave kõigi parameetrite kohta (alates parameetrite määramisest), sealhulgas nii päringud kui ka vastuseandmed.

Kui lisate valiku „Serveri tagastatud andmed”, siis teie logi pikkus kasvab. See sisaldab kogu HTML-i, silte, ressursse ja mitte-ressurssidega seotud teavet otse logis. See valik on hea ainult siis, kui vajate tõsist tõrkeotsingut. Tavaliselt muudab see logifaili väga suureks ja raskesti mõistetavaks.

Nagu te juba arvata võisite, kui valite valiku „Täpsemalt”, Trac„e” on teie logifail tohutu. Peate seda proovima. Märkate, et ka VuGeni poolt kuluv aeg suureneb märkimisväärselt, kuigi see ei mõjuta VuGeni teatatud tehingule reageerimise aega. See on väga edasijõudnud teave ja see on kasulik ainult siis, kui te mõistate kõnealust rakendust, kliendi ja serveri vahelist suhtlust teie rakenduse ja riistvara vahel ning protokolli tasemel üksikasju. Tavaliselt nõuab selle teabe lugemine ja tõrkeotsing äärmist pingutust.

Käitusaja sätete logipaan standardsete ja laiendatud logivalikutega

Nõuanne:

  • Pole tähtis, kui palju aega VuGen logimise lubamisel võtab, ei mõjuta see tehingule reageerimise aega – logimise üldkulud mõõdetud ajast välja arvata.
  • Keelake logi, kui see pole vajalik.
  • Kui olete skriptidega lõpetanud, keelake logi. Logimisega skriptide lisamine aeglustab kontrolleri tööd ja annab häirivaid teateid.
  • Logi keelamine suurendab LoadRunneri abil simuleeritavate kasutajate maksimaalset arvu.
  • Kaalu valiku „Saada sõnumeid ainult vea ilmnemisel” kasutamist – see vaigistab ebavajalikud teavitused ja kuvab ainult veaga seotud teateid.

Mõtle Timesile

Mõelge, et aeg on lihtsalt kahe etapi vaheline viivitus.

Mõtteaeg aitab jäljendada kasutaja käitumist, kuna ükski päris kasutaja ei saa rakendust kasutada nagu masin. VuGen genereerib mõtlemisaega automaatselt. Teil on endiselt täielik kontroll mõtlemisaja kestuse eemaldamise, korrutamise või muutmise üle.

Paremaks mõistmiseks: kasutaja võib avada ekraani (vastuse, millele järgneb päring) ja seejärel sisestada kasutajanime ja parooli enne sisestusklahvi vajutamist. Järgmine suhtlus rakenduse ja serveri vahel toimub siis, kui kasutaja klõpsab nupul „Logi sisse“. Aeg, mis kasutajal kulus kasutajanime ja parooli sisestamiseks, on LoadRunneris Think Time.

Käitusaja sätete paan „Mõtle ajale“ koos taasesituse mõtlemisaja valikutega

Kui soovite simuleerida rakenduse agressiivset koormust, kaaluge mõtlemisaja täielikku keelamist.

Reaalse käitumise simuleerimiseks võite aga valida „Kasuta juhuslikku mõtlemisaega“ ja määrata soovitud protsendid.

Kaalu mõtteaja piiramist, et see mõistliku aja peale piirata. Tavaliselt on 30 sekundit üsna piisav.

Kiiruse simulatsioon

Kiiruse simulatsioon viitab lihtsalt iga kliendimasina ribalaiuse mahutavusele.

Kuna simuleerime LoadRunneri kaudu tuhandeid virtuaalkasutajaid, on tähelepanuväärne, kui lihtsaks on LoadRunner ribalaiuse ja võrgukiiruse simulatsiooni teinud.

Kui teie kliendid pääsevad teie rakendusele juurde kiirusega üle 128 kbit/s, saate seda siit kontrollida. Saate simuleerida reaalset käitumist, mis peaks aitama teil saada õigeid jõudlusstatistikat.

Kiiruse simulatsiooni paan, mis pakub maksimaalset ribalaiust või fikseeritud ühenduse kiirust

Parim soovitus on seadistada „Kasuta maksimaalset ribalaiust“. See aitab teil ignoreerida võrguga seotud jõudluse kitsaskohti ja keskenduda esmalt rakenduse võimalikele probleemidele. Testi saab alati mitu korda käivitada, et näha erinevat käitumist erinevates olukordades.

Brauseri emulatsioon

Kasutajakogemus ei sõltu lõppkasutaja kasutatavast brauserist, seega jääb see suuresti jõudlusmõõdikute ulatusest välja. Siiski saate valida, millist brauserit soovite jäljendada, nagu allolev paan näitab.

Brauseri emuleerimise paan kasutajaagendi ja vahemälu simulatsiooni valikutega

Millal täpselt on selles konfiguratsioonis valitud brauseril tegelikult tähtsust?

Seda konfiguratsiooni kasutatakse juhul, kui tegemist on veebirakendusega, mis tagastab erinevate brauserite puhul erinevaid vastuseid. Näiteks võidakse Internet Exploreri ja teiste brauserite puhul kuvada erinevaid pilte ja sisu. Firefox.

Teine oluline säte on „Simuleeri brauseri vahemälu”. Märkige see ruut, kui soovite mõõta reageerimisaega lubatud vahemäluga. Kui otsite halvimat võimalikku olukorda, pole see ilmselgelt oluline.

„Mitte-HTML-ressursside allalaadimine” lubab LoadRunneril alla laadida mis tahes CSS-i, JS-i ja muud rikkalikku meediat. See peaks jääma märgituks. Kui aga soovite selle oma jõudlustesti kujundusest eemaldada, saate selle valiku tühistada.

Volikiri

Parim on puhverserver täielikult oma arvutist eemaldada. Testi keskkond — teel olev puhverserver muudab testi tulemused ebausaldusväärseks. Siiski võib tekkida olukordi, kus see on vältimatu. Sellises olukorras pakub LoadRunner puhverserveri seadeid.

Sa töötad (või peaksid töötama) sättega „Puhverserverita“. Selle saad oma vaikebrauserist. Ära aga unusta kontrollida, milline brauser on vaikebrauseriks seatud ja milline on selle brauseri puhverserveri konfiguratsioon.

Käitusaja sätete puhverserveri paan koos puhverserveri keelamise ja käsitsi puhverserveri valikutega

Kui kasutate puhverserverit ja see nõuab autentimist (või skripti), saate klõpsata nupul „Autentimine“, mis viib uude aknasse. Vaadake allolevat ekraanipilti.

Puhverserveri autentimisaken, kus küsitakse kasutajanime ja parooli

Sellel ekraanil saate sisestada puhverserveris autentimiseks kasutajanime ja parooli. Ekraani sulgemiseks klõpsake nuppu OK.

Palju õnne. VuGeni skripti seadistamine on lõppenud. Ära unusta seda seadistada kõigi oma VUseri skriptide jaoks.

Järgmisena tule korrelatsioon, käivitades stsenaariumi kontrollerja lugemise tulemused LoadRunneri analüüs. Vaadake LoadRunneri arhitektuur ja Koormuse testimine juhendid.

KKK

Valige väärtus skriptivaates, paremklõpsake ja valige „Asenda parameetriga”. Pange sellele nimi, valige tüüp ja VuGen asendab iga teie poolt heakskiidetud sobiva esinemise.

Kuupäev/kellaaeg, juhuslik arv, unikaalne number, iteratsiooninumber, virtuaalkasutaja ID, grupi nimi ja laadimine Generator Nimi genereeritakse taasesituse ajal. Ainult faili-, tabeli- ja XML-parameetrid vajavad teie sisestatud andmeallikat.

Masinõpe pakub välja korrelatsioonikandidaate, märgistab skripte, mis pärast rakenduse muutmist katki lähevad, ja genereerib realistlikke testandmeid. Hiljutised VuGeni versioonid pakuvad tehisintellekti abil skriptide loomist, kuigi genereeritud laused vajavad veel ülevaatamist.

GitHubi koopia saab C-scaffoldinguga hästi hakkama – tsüklid, stringide käsitlemine, tehingute mähised –, kuna VuGeni skriptid on C-st. See on protokollispetsiifiliste veebifunktsioonide puhul nõrgem, seega kontrollige iga genereeritud kutset funktsiooni viite suhtes.

See käsib virtuaalsel kasutajal (VUser) jätkata ülejäänud sammude täitmist pärast ühe ebaõnnestumist, selle asemel, et iteratsiooni lõpetada. Kasulik varajases uurimuslikus käivitamises, kuid peidab tegelikke ebaõnnestumisi, kui see sisse jätta.

Lisa enne päringut sisukontroll, et kordus otsiks vastusest oodatavat teksti. Mööduv HTTP-staatuse teade ei tõesta iseenesest midagi, sest vealeht võib tagastada väärtuse 200.

Ei. Toode kolis HP-lt Micro Focusse ja on nüüd OpenText Professionaalne jõudlustehnikaVuGen säilitab oma nime, funktsioonide teegi ja käitusaja sätete paanid.

Lause lr_rendezvous märgib ainult kohtumispunkti. See, mitu VUserit peab saabuma ja kui kaua käsk ootab, määratakse kontrolleri kohtumisvalikute alt, mitte VuGenist.

Võta see postitus kokku järgmiselt: