2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Edellisessä tutkimuksessa olemme käyttäneet JMeteriä Agileone-järjestelmän protokollatason rajapintatestin suorittamiseen. Tiedämme myös, että suorituskyvyn testaustekniikan ydin on käyttää monisäikeistä tekniikkaa protokollapyyntöjen lähettämiseen, jotta voidaan suorittaa simulaatio, jossa suuri joukko käyttäjiä käyttää järjestelmää. JMeterin alkuperäinen suunnittelutarkoitus on itse asiassa suorituskyvyn testaus. Esimerkiksi ensimmäinen askel, kun luomme testisuunnitelman, on luoda säieryhmä. Tämä kokeilu selittää, kuinka JMeteriä käytetään suorittamaan Phpwind-kirjautumisen ja lähettämisen suorituskykytesti.
Tarkoitus
(1) Hallitse assosiaatiohaun käyttö JMeterissä.
(2) Hallitse kierteen suunnittelu ja käyttö JMeterissä.
(3) Hallitse testiraporttien käyttö JMeterissä.
kokeiluprosessi
Olemme luoneet Phpwindille yhteensä 100 käyttäjää testuser_1:stä testuser_100:een, joten suorituskyvyn testausprosessin aikana meidän tulisi ottaa käyttöön käyttäjien satunnainen kirjautuminen, jotta voimme paremmin simuloida todellisia skenaarioita.
(1) Luo "HTTP-pyyntö" -näyte, anna sille nimi "DoLogin" ja täytä vastaavat kirjautumisPOST-pyynnön parametrit.
(2) Luo "vastausvahvistus" ja "näytä tulospuu" näytteenottimelle, ja sama koskee myöhempiä pyyntöjä.
(3) Luo "esiprosessori" näytteenottimelle ja toteuta satunnaisluku väliltä 1-100.
(4) Lopullinen toteutettu testipyyntö on seuraava:
Koska Phpwindissä lähettäessäsi sinun on määritettävä kenttä "verify", jonka arvo on satunnaisluku, meidän on käytettävä säännöllisiä lausekkeita vastaavan arvon yhdistämiseen vastauksessa. Tämä osa on hallittu käyttöliittymätestauksen toteutusprosessissa. Tässä tarkastellaan pääasiassa sen toteuttamista JMeterissä:
(1) Lisää "HTTP-pyyntö" -näyte ja lähetä GET-pyyntö osoitteeseen "/phpwind/post.php?fid=2" saadaksesi vastauksen.
(2) Lisää näytteenottimeen jälkiprosessori, aseta se arvoon "Regular Expression Extractor" ja tee seuraavat asetukset:
(3) Lyhyt selitys yllä olevista syöttökentistä:
a) Viitenimi: Seuraavassa pyynnössä viitattavan parametrin nimi Jos täytät vahvistuskoodin, voit viitata siihen käyttämällä ${verifycode}.
b) Säännöllinen lauseke: Suluissa on poimittava sisältö, jota olemme taitavia soveltamaan.
c) Malli: lainausmerkillä $-$ Jos asettamamme säännöllinen lauseke löytää useita arvoja, järjestysnumero osoittaa, mikä arvo käsitellään.
d) Vastaavat luvut: 0 edustaa satunnaista arvoa, 1 edustaa kaikkia arvoja, yleensä vain täytä 0.
e) Oletusarvo: Jos parametri ei saa arvoa, sille annetaan oletusarvo.
(1) Aseta käyttäjäparametri näytteenottimelle ja käytä toimintoavustajaa satunnaisluvun luomiseen viestin otsikolle ja sisällölle.
(2) Käytä edellisessä vaiheessa saatua vahvistuskoodia vahvistuskentän arvona POST-pyynnön rungossa.
(3) Lopullinen luotu testipyyntö on seuraava:
Oletusarvoisesti JMeter, kuten käyttöliittymätesti, vastaa vain nykyisen pyydetyn sivun lataamisesta, eikä lataa muita sivun lisäresursseja. Tämä ei tietenkään vastaa todellista tilannetta. Joten meidän on ladattava kaikki sivun resurssit HTTP-näytteenottosovelluksen "Lisäasetukset"-välilehdellä "Hae kaikki mukana olevat resurssit HTML-tiedostoista".
Tätä suoritusta varten noudatamme edelleen samaa skenaariosuunnittelua kuin edellinen Java-skripti: 50 käyttäjää, 5 samanaikaista käyttäjää 10 sekunnin välein ja jokainen käyttäjä suorittaa 100 kertaa. Tarkat asetukset ovat seuraavat:
"Ramp-Up Period (sekunteina)" -parametrin asettaminen 100 sekuntiin tarkoittaa säikeen lisäämistä kahden sekunnin välein. Vaikka taajuutta ei voida määrittää mielivaltaisesti kuin mukautettua säiettä, tällainen asetus on yhdenmukainen 10 sekunnin välein. Viiden samanaikaisen käyttäjän vaikutuksessa ei ole olennaista eroa.
Ajojen määrän asettamisen lisäksi voimme asettaa myös suoritustestiprosessin kokonaisajoajan. Valitse yllä olevan kuvan alaosasta "Scheduler" ja aseta kesto. Jos meidän täytyy juosta yhtäjaksoisesti tunnin ajan, meidän tarvitsee vain asettaa sen arvo 3600 sekuntiin.
Think time on asetus, joka on välttämätön todellisten käyttäjien skenaarioiden simuloimiseksi. JMeterin tarjoamaa "ajastin" -komponenttia käytetään simuloimaan käyttäjän ajatteluaikaa. Käytämme useammin käytettyä "Gaussin satunnaista ajastinta". Näytteenottolaite asettaa ajatteluajan:
(1) Napsauta hiiren kakkospainikkeella sampleria, esimerkiksi napsauta "DoLogin" luodaksesi uuden "Gaussin satunnaisajastimen".
(2) Aseta offset arvoon 2000 millisekuntia ja kiinteä viivepoikkeama 4000 millisekuntiin. Sen tehtävänä on generoida satunnaisluku alueella 4 sekuntia plus tai miinus 2 sekuntia, eli satunnainen taukoaika on välillä 2 sekuntia ja 6 sekuntia.
Lisätietoja JMeter-ajastimen käytöstä
Kohtauspisteen käsitteen ehdotti ensin suorituskyvyn testaustyökalu LoadRunner. Sen tehtävänä on, että sen jälkeen, kun ryhmä säikeitä on lähettänyt pyynnön, kaikki kokoontuvat yhteen, kunnes kaikki säikeet on synkronoitu tiettyyn ajankohtaan, ja lähettää sitten pyynnön yhdessä. Sitä käytetään simuloimaan tiukempaa samanaikaisuustestausta. Vaikka kohtaamispisteiden käyttö ei ole yhdenmukainen todellisten skenaarioiden kanssa, se voi aiheuttaa suurempia paineita palvelimelle. Sitä käytetään pääasiassa palvelimen samanaikaisuuden testaamiseen.
JMeterissä voimme käyttää "Synchronizing Timer" -ajastinta tapaamispisteiden käsittelyn suorittamiseen. Esimerkiksi seuraava kuva näyttää meille, kuinka samanaikainen testausstrategia toteutetaan näytteille "DoPost":
(1) Simuloitujen käyttäjien määrä ryhmitellä: Tämä arvo vastaa säikeiden määrää keräyspisteessä. Tässä asetetaan se arvoon 50, mikä tarkoittaa, että kokoelman on odotettava 50 säiettä ennen seuraavan pyynnön lähettämistä. Jos tässä asetetaan arvoksi 0, se tarkoittaa säieryhmän asettaman kaikkien säikeiden kokoelman käyttöä.
(2) Aikakatkaisu millisekunteina: Aseta tässä arvoksi 10000, mikä tarkoittaa, että kohtauspisteen aikakatkaisu on 10 sekuntia, eli jos kaikki säikeet eivät ole odottaneet 10 sekuntia, ne eivät enää odota. Keräyksen suorittanut säie lähettää suoraan seuraavan pyynnön.
Itse asiassa Javan alkuperäisessä säikeenkehityksessä voimme käyttää myös kahta synkronointimenetelmää "wait()" ja "notifyAll()" tapaamispisteen simulaation suorittamiseksi loppuun.
JMeterissä on myös monia sisäänrakennettuja komponentteja testiraporttien katseluun, mutta yleisimmin käytetty on tietylle säieryhmälle luotu "koontiraportti". Esimerkiksi nykyisen Phpwind-suorituskykytestin tulokset on esitetty alla:
Yllä olevasta kuvasta nähdään kunkin näytteenottimen suoritusten lukumäärä, erilaiset vasteajan matemaattiset tilastot (keskiarvo, mediaani, 90 % arvo, minimiarvo, maksimiarvo), tapahtuman virheprosentti, verkon kaistanleveys Läpäisykyky, kokonaisvastauskoko, yhteensä pyytää kokoa ja muita tietoja. Palvelinpuolen suorituskykyindikaattoreiden seurannan lisäksi nämä indikaattorit ovat periaatteessa riittäviä, jotta voimme analysoida perustietoja suorituskykytestiä varten.
Ajatusharjoitus
(1) Tunne JMeterin muiden komponenttien käyttö.
(2) Suorita projektin suorituskykytesti ja ratkaise kohtaamat ongelmat yksitellen JMeterin avulla.
(3) Vertaa JMeterin suorituskykytestiä suorituskykytestiin, jonka kehitimme itse käyttämällä alkuperäistä Javaa nähdäksesi yhtäläisyydet ja erot.
Lopuksi haluan kiittää kaikkia, jotka ovat lukeneet artikkelini huolellisesti.
Meidän täytyy opiskella löytääksemme korkeapalkkaisen työn. Seuraavat haastattelukysymykset ovat uusimpia haastattelumateriaaleja ensiluokkaisilta Internet-yrityksiltä, kuten Alibaba, Tencent, Byte jne., ja jotkut Byte-pomot ovat antaneet arvovaltaisia vastauksia Uskon, että jokainen voi löytää tyydyttävän työpaikan haastattelutietojen perusteella.