Parametrisointi, funktiot, tapahtumat LoadRunnerissa
Tallennettu skripti voi simuloida virtuaalista käyttäjää; Pelkkä tallennus ei kuitenkaan välttämättä riitä toistamaan "todellista käyttäjän käyttäytymistä".
Kun käsikirjoitus tallennetaan, se kattaa yksittäisen ja suoran aihesovelluksen kulkua. Todellinen käyttäjä voi suorittaa useita iteraatioita mistä tahansa prosessista ennen kuin hän kirjautuu ulos. Painikkeiden napsautuksen välinen viive (ajatteluaika) vaihtelee henkilöstä toiseen. Todennäköisesti jotkut oikeat käyttäjät käyttävät sovellustasi DSL-yhteyden kautta ja jotkut puhelinverkkoyhteyden kautta. Joten saadaksemme todellisen loppukäyttäjän tunteen, meidän on parannettava komentosarjojamme niin, että ne vastaisivat tarkasti tai ainakin käyttäytyvät hyvin lähellä todellisia käyttäjiä.
Yllä oleva on tärkein näkökohta, kun suoritetaanSuorituskykytestaus”, mutta VU-komentosarjassa on muutakin. Kuinka arvioit tarkan ajan, joka VU-käyttäjälle kuluu, kun SUL:n suorituskykytesti on käynnissä? Mistä tiedät, onko VUser läpäissyt tai epäonnistunut jossain vaiheessa? Mikä on epäonnistumisen syy, epäonnistuiko jokin taustaprosessi tai palvelinresurssit olivat rajalliset?
Meidän on parannettava käsikirjoitustamme, jotta voimme vastata kaikkiin yllä oleviin kysymyksiin.
Transaktioiden käyttäminen
Tapahtumat ovat mekanismeja, jotka mittaavat palvelimen vasteaikaa mille tahansa toiminnolle. Yksinkertaisesti sanottuna "Tapahtuman" käyttö auttaa mittaamaan aikaa, joka järjestelmältä kuluu tiettyyn pyyntöön. Se voi olla niinkin pieni kuin napin painallus tai AJAX-kutsu, kun fokus katoaa tekstiruudusta.
Transaktioiden soveltaminen on yksinkertaista. Kirjoita vain yksi koodirivi ennen pyynnön tekemistä palvelimelle ja sulje tapahtuma, kun pyyntö päättyy. LoadRunner vaatii tapahtuman nimeksi vain merkkijonon.
Avaa tapahtuma käyttämällä tätä koodiriviä:
lr_start_transaction(“Transaction Name”);
Sulje tapahtuma käyttämällä tätä koodiriviä:
lr_end_transaction(“Transaction Name”, <status>);
The kertoo LoadRunnerille, oliko tämä tapahtuma onnistunut vai epäonnistunut. Mahdolliset parametrit voivat olla:
- LR_AUTO
- LR_PASS
- LR_FAIL
Esimerkiksi:
lr_end_transaction("Oma_kirjautuminen", LR_AUTO);
lr_end_transaction("001_Opening_Dashboard Name", LR_PASS);
lr_end_transaction("Liiketoiminnan_työnkulun_tapahtuman nimi", LR_FAIL);
Huomioitavaa:
- Älä unohda, että käytät C:tä, ja se on isot ja pienet kirjaimet huomioiva kieli.
- Piste (.) ei ole sallittu tapahtuman nimessä, vaikka voit käyttää välilyöntejä ja alaviivoja.
- Jos olet haaroittanut koodisi hyvin ja lisännyt tarkistuspisteitä palvelimen vastauksen vahvistamiseksi, voit käyttää mukautettua virheenkäsittelyä, kuten LR_PASS tai LR_FAIL. Muussa tapauksessa voit käyttää LR_AUTOa ja LoadRunner käsittelee automaattisesti palvelinvirheen (HTTP 500, 400 jne.)
- Kun käytät tapahtumia, varmista, että ei ole ajatella_aikaa tiliotteen välissä tai muuten tapahtumasi sisältää aina kyseisen ajanjakson.
- Koska LoadRunner edellyttää vakiomerkkijonoa tapahtuman nimenä, yleinen ongelma tapahtumaa sovellettaessa on merkkijonon yhteensopimattomuus. Jos annat eri nimen tapahtumaa avattaessa ja sulkeessa, saat vähintään 2 virhettä. Koska avaamaasi tapahtumaa ei koskaan suljettu, LoadRunner antaa virheilmoituksen. Lisäksi tapahtumaa, jota yrität sulkea, ei koskaan avattu, mikä johti virheeseen.
- Voitko käyttää älykkyyttäsi ja vastata itsellesi, mikä yllä olevista virheistä ilmoitetaan ensin? Vahvistaaksesi vastauksesi, miksi et tekisi oman virheesi? Jos vastasit oikein, olet oikeilla jäljillä. Jos vastasit väärin, sinun on keskityttävä.
- Koska LoadRunner huolehtii automaattisesti pyyntöjen ja vastausten synkronoinnista, sinun ei tarvitse huolehtia vastauksista tapahtumia sovellettaessa.
Ajatusajan, kohtaamispisteiden ja kommenttien ymmärtäminen
Rendezvous-pisteet
Rendezvous Points tarkoittaa kohtaamispisteitä. Se on vain yksi lauseke, joka käskee LoadRunneria ottamaan käyttöön samanaikaisuuden. Lisäät kohtauspisteitä VUser-skripteihin emuloidaksesi palvelimen raskasta käyttäjäkuormitusta.
Rendezvous-pisteet käskevät VUseriä odottamaan testin suorittamisen aikana, että useat VUser-yksiköt saapuvat tiettyyn pisteeseen, jotta ne voivat suorittaa tehtävän samanaikaisesti. Esimerkiksi pankkipalvelimen huippukuormituksen jäljittelemiseksi voit lisätä kohtaamispisteen, joka käskee 100 VUseriä tallettamaan rahaa tileilleen samanaikaisesti. Tämä voidaan saavuttaa helposti tapaamisen avulla.
Jos kohtaamispisteitä ei ole sijoitettu oikein, VUser käyttää sovelluksen eri osia – jopa samalla skriptillä. Tämä johtuu siitä, että jokainen VUser saa erilaisen vasteajan ja siksi harvat käyttäjät jäävät jälkeen.
Syntaksi: lr_rendesvous("Looginen nimi");
Parhaat käytännöt:
- Liitä kohtaamispisteen eteen "rdv_" koodin luettavuuden parantamiseksi; esim. "rdv_Login"
- Poista kaikki välittömät ajatusaikalausekkeet
- Tapaamispisteiden käyttäminen käsikirjoitusnäkymässä (nauhoituksen jälkeen)
Kommentit
Lisää kommentteja kuvaamaan toimintaa, koodinpätkää tai koodiriviä. Kommentit auttavat tekemään koodista ymmärrettävän kaikille, jotka viittaavat siihen tulevaisuudessa. Ne tarjoavat tietoa tietystä toiminnasta ja erottavat kaksi osiota erottelua varten.
Voit lisätä kommentteja
- Tallennuksen aikana (työkalua käytettäessä)
- Tallennuksen jälkeen (kirjoita suoraan koodiin)
Paras käytäntö: Merkitse kommentit jokaisen komentosarjatiedoston yläosaan
Toimintojen lisääminen valikon kautta
Vaikka voit kirjoittaa suoraan yksinkertaisia koodirivejä, saatat tarvita vihjeen funktion palauttamiseksi. Voit myös käyttää Steps Toolboxia (tunnetaan nimellä Insert Function ennen versiota 12) löytääksesi ja lisätäksesi minkä tahansa funktion suoraan komentosarjaan.
Steps Toolbar löytyy Näytä àSteps Toolbox -kohdasta.
Tämä avaa sivuikkunan, katso tilannekuva:
Mikä on parametrointi?
A parametri VUGenissä on kontti, joka sisältää tallennetun arvon, joka korvataan eri käyttäjille.
Skriptin suorituksen aikana (VUGenissä tai Controllerissa) ulkoisesta lähteestä (kuten .txt, XML tai tietokanta) tuleva arvo korvaa parametrin edellisen arvon.
Parametrointi on hyödyllinen esimerkiksi dynaamisten (tai yksilöllisten) arvojen lähettämisessä palvelimelle; Liiketoimintaprosessissa halutaan suorittaa 10 iteraatiota, mutta joka kerta valitaan yksilöllinen käyttäjätunnus.
Se auttaa myös stimuloimaan todellista käyttäytymistä aihejärjestelmässä. Katso alla oleva esimerkki:
Esimerkkejä ongelmista:
Liiketoimintaprosessi toimii vain nykyiselle päivämäärälle, joka tulee palvelimelta, joten sitä ei voida välittää kovakoodattuina pyyntöinä.
Joskus asiakassovellus välittää palvelimelle yksilöllisen tunnuksen (esimerkiksi session_id), jotta prosessi jatkuu (jopa yhdelle käyttäjälle) – Tässä tapauksessa parametrointi auttaa.
Usein asiakassovellus ylläpitää välimuistia palvelimelle lähetettävistä tiedoista ja palvelimelta. Tämän seurauksena palvelin ei saa todellista käyttäjän käyttäytymistä (jos palvelin käyttää eri algoritmia hakuehtojen mukaan). Vaikka VUser-skripti suoritetaan onnistuneesti, piirretyillä suorituskykytilastoilla ei ole merkitystä. Erilaisten tietojen käyttäminen parametroinnin avulla auttaa emuloimaan palvelinpuolen toimintaa (proseduurit jne.) ja harjoittelemaan järjestelmää.
Päivämäärä, joka on kovakoodattu VU-laitteeseen tallennuksen aikana, ei ehkä ole enää voimassa kyseisen päivämäärän jälkeen. Päivämäärän parametrointi mahdollistaa VUser-suorituksen onnistumisen korvaamalla kovakoodatun päivämäärän. Tällaiset kentät tai pyynnöt ovat oikeita ehdokkaita parametrointiin.
Napauta tätä jos video ei ole saatavilla
Run Time -asetukset ja niiden vaikutus ajoneuvoyksikön simulointiin
Run Time -asetukset ovat yhtä tärkeitä kuin VUGen-skriptilläsi. Vaihtelevilla kokoonpanoilla voit saada erilaisia testimalleja. Tästä syystä saatat päätyä ei-toistuviin tuloksiin, jos suoritusajan asetukset eivät ole yhdenmukaisia. Keskustellaan jokaisesta ominaisuudesta yksitellen.
Suorita Logic
Run Logic määrittää, kuinka monta kertaa kaikki toiminnot suoritetaan paitsi vuser_init ja vuser_end.
Luultavasti tämä selventää, miksi LoadRunner ehdottaa, että kaikki kirjautumiskoodit säilytetään vuser_init-kentässä ja uloskirjaus-osa vuser_endissä, molemmat yksinomaan.
Jos olet luonut useita toimintoja, esimerkiksi kirjaudu sisään, avaa näyttö, laske vuokra, lähetä varat, tarkista saldo ja kirjaudu ulos, alla oleva skenaario tapahtuu jokaiselle VU-käyttäjälle:
Kaikki VU-käyttäjät kirjautuvat sisään, suorittavat avoimen näytön, laskevat vuokran, lähettävät varoja, tarkistavat saldon - sitten - uudelleen Avaa näyttö, laskevat vuokrat... ja niin edelleen - toistetaan 10 kertaa - ja sen jälkeen uloskirjautuminen (kerran).
Tämä on tehokas asetus, jonka avulla voit toimia enemmän kuin todellinen käyttäjä. Muista, että oikea käyttäjä ei kirjaudu sisään ja kirjaudu ulos joka kerta – hän yleensä toistaa samat vaiheet.
Kuinka monta kertaa napsautat "saapuneet" kun tarkistat sähköpostisi ennen uloskirjautumista?
vauhdista
Tämä on tärkeää. Useimmiten ihmiset eivät pysty ymmärtämään tahdistuksen ja ajatteluajan eroa. Ainoa ero on, "Tahdistus viittaa iteraatioiden väliseen viiveeseen", kun taas ajatteluaika on kahden vaiheen välinen viive.
Suositeltu asetus riippuu testin suunnittelusta. Jos kuitenkin etsit aggressiivista kuormaa, harkitse "Heti kun edellinen iteraatio päättyy" -vaihtoehtoa.
Kirjaudu
Loki (kuten yleisesti ymmärretään) on kirjanpito kaikista tapahtumista, kun käytät LoadRunner-ohjelmaa. Voit ottaa lokin käyttöön saadaksesi tietää, mitä sovelluksesi ja palvelimesi välillä tapahtuu.
LoadRunner tarjoaa tehokkaan kirjausmekanismin, joka on vankka ja skaalautuva yksinään. Sen avulla voit säilyttää vain "Standard Log" -lokin tai yksityiskohtaisen, konfiguroitavan laajennetun lokin tai poistaa sen kokonaan käytöstä.
Vakioloki on informatiivinen ja helposti ymmärrettävä. Se sisältää juuri oikean määrän tietoa, jota yleensä tarvitset VUser-skriptien vianmääritykseen.
Laajennetun lokin tapauksessa kaikki vakiolokin tiedot ovat osajoukko. Lisäksi voit vaihtaa parametreja. Tämä käskee LoadRunner-komponenttia sisällyttämään täydelliset tiedot kaikista parametreista (parametreista), mukaan lukien pyynnöt, sekä vastaustiedot.
Jos lisäät "Palvelimen palauttamat tiedot", loki on pitkä. Tämä sisältää kaikki lokiin sisältyvät HTML-koodit, tunnisteet, resurssit ja muut tiedot kuin resurssit. Vaihtoehto on hyvä vain, jos tarvitset vakavaa vianetsintää. Yleensä tämä tekee lokitiedostosta erittäin suuren kooltaan ja vaikeasti ymmärrettävän.
Kuten olet voinut jo arvata, jos valitset "Advance Trace", lokitiedostosi on valtava. Sinun täytyy kokeilla sitä. Huomaat myös, että VUGenin käyttämä aika on kasvanut merkittävästi, vaikka tällä ei ole vaikutusta VUGenin raportoimaan tapahtuman vasteaikaan. Tämä on kuitenkin erittäin ennakkotietoa ja saattaa olla hyödyllistä, jos ymmärrät aihesovelluksen, asiakkaan ja palvelimen välisen viestinnän sovelluksesi ja laitteistosi välillä sekä protokollatason yksityiskohdat. Yleensä nämä tiedot ovat pohjimmiltaan kuolleita, koska niiden ymmärtäminen ja vianmääritys vaatii äärimmäisiä ponnisteluja.
Vinkki:
- Riippumatta siitä, kuinka paljon aikaa VUGen vie, kun loki on käytössä, sillä ei ole vaikutusta tapahtuman vasteaikaan. HP kutsuu tätä ilmiötä "moderni teknologiaksi".
- Poista loki käytöstä, jos sitä ei vaadita.
- Poista loki käytöstä, kun olet lopettanut komentosarjasi. Skriptien sisällyttäminen lokiin kirjaamiseen saa ohjaimen toimimaan hitaammin ja raportoimaan häiritseviä viestejä.
- Lokin poistaminen käytöstä lisää LoadRunnerista simuloitavien käyttäjien enimmäismäärän kapasiteettia.
- Harkitse "Lähetä viesti vain virheen sattuessa" -toimintoa – tämä mykistää tarpeettomat tietoviestit ja raportoi vain virheisiin liittyvät viestit.
Think Times
Ajattele Aika on yksinkertaisesti kahden vaiheen välinen viive.
Think Time auttaa toistamaan käyttäjän käyttäytymistä, koska kukaan todellinen käyttäjä ei voi käyttää mitään sovellusta kuten kone (VUGen). VUGen luo ajatusaikaa automaattisesti. Sinulla on edelleen täysi valta poistaa, kertoa tai vaihdella ajatteluajan kestoa.
Ymmärtääkseen enemmän, käyttäjä voi esimerkiksi avata näytön (eli vastaus ja pyyntö) ja antaa sitten käyttäjätunnuksensa ja salasanansa ennen Enter-näppäintä. Sovelluksen seuraava vuorovaikutus palvelimelle tapahtuu, kun hän napsauttaa "Kirjaudu sisään". Aika, jonka käyttäjä käytti käyttäjätunnuksen ja salasanan kirjoittamiseen, on Think Time LoadRunnerissa.
Jos haluat simuloida sovelluksen aggressiivista kuormitusta, harkitse ajatteluajan poistamista kokonaan käytöstä.
Voit kuitenkin simuloida todellista samankaltaista käyttäytymistä "User Random Think Time" -toiminnolla ja asettaa prosenttiosuudet haluamallasi tavalla.
Harkitse Limit Think Time käyttöä lailliseen ajanjaksoon. Yleensä 30 sekuntia riittää.
Nopeuden simulointi
Nopeussimulaatio viittaa yksinkertaisesti kunkin asiakaskoneen kaistanleveyskapasiteettiin.
Koska simuloimme tuhansia VUserejä LoadRunnerin kautta, on hämmästyttävää, kuinka yksinkertaista LoadRunner on tehnyt kaistanleveyden/verkon nopeuden simulaation ohjaamiseen.
Jos olet asiakkaita, jotka käyttävät sovellustasi yli 128 Kbps:n nopeudella, voit hallita sitä täältä. Saat simuloida "todellista samanlaista käyttäytymistä", jonka pitäisi auttaa saamaan oikeat suorituskykytilastot.
Paras suositus on valita Käytä maksimikaistanleveyttä. Tämä auttaa jättämään huomioimatta kaikki verkkoon liittyvät suorituskyvyn pullonkaulat ja keskittymään ensin mahdollisiin ongelmiin sovelluksessa. Voit aina suorittaa testin useita kertoja nähdäksesi erilaisen käyttäytymisen eri olosuhteissa.
Selaimen emulointi
Käyttökokemus ei riipu loppukäyttäjän käyttämästä selaimesta. On selvää, että tämä ei kuulu suorituskykymittareihin. Voit kuitenkin valita, mitä selainta haluat emuloida.
Voitko vastata itsellesi, milloin sinun on todella tärkeää valita oikea selain tässä kokoonpanossa?
Käytät tätä kokoonpanoa, jos aihesovellus on verkkosovellus, joka palauttaa erilaisia vastauksia eri selaimille. Saat esimerkiksi nähdä erilaisia kuvia ja sisältöjä IE:lle ja Firefox ja niin edelleen
Toinen tärkeä asetus on Simuloi selaimen välimuisti. Jos haluat mitata vasteajan, kun välimuisti on käytössä, valitse tämä ruutu. Jos etsit pahinta tilannetta, tämä ei tietenkään ole huomioitava.
Lataa ei-HTML-resurssit antaa LoadRunnerin ladata minkä tahansa CSS-, JS- ja muun multimedian. Tämä pitäisi pysyä tarkastettuna. Jos kuitenkin haluat poistaa tämän suorituskyvyn testisuunnittelusta, voit poistaa tämän valinnan.
Valtakirja
On parasta poistaa välityspalvelin kokonaan Testiympäristössä – Tämä tekee testituloksista epäluotettavia. Saatat kuitenkin kohdata tilanteita, joissa se on väistämätöntä. Tällaisessa tilanteessa LoadRunner helpottaa sinua välityspalvelimen asetuksissa.
Työskentelet (tai sinun pitäisi työskennellä) Ei välityspalvelinta -asetuksella. Voit hankkia sen oletusselaimestasi. Älä kuitenkaan unohda tarkistaa, mikä selain on oletusasetukseksi asetettu ja mikä välityspalvelinasetus oletusselaimelle on.
Jos käytät välityspalvelinta ja se vaatii todennusta (tai komentosarjaa), voit napsauttaa Authenticate-painiketta, joka johtaa uuteen ikkunaan. Katso alla oleva kuvakaappaus.
Käytä tätä näyttöä antaaksesi käyttäjätunnuksen ja salasanan välityspalvelimen todennusta varten. Sulje näyttö napsauttamalla OK.
Onnittelut. Olet valmis määrittämään VUGen-skriptin. Älä unohda määrittää sitä kaikille VUser-skripteillesi.