jos sinulla on sähköisen kaupankäynnin sivusto (tai mikä tahansa sivusto, että asia), ei ole harvinaista, että voit odottaa enemmän liikennettä tiettyinä päivinä, kuten Black Friday, esimerkiksi. Tällaisina hetkinä meidän on vietävä kuormitustestimme seuraavalle tasolle ja simuloitava suurempia samanaikaisia käyttäjiä. Jos suoritamme kuormitustestejä paikallisesti Apache JMeter™ – laitteella, voit suorittaa tiettyjä rajoituksia käyttäjämäärälle, vaikka tietokoneessa olisi riittävästi suoritinta ja muistia.
miten voimme luoda skenaarion, jossa yli 800 samanaikaista käyttäjää käyttää Jmeteriä? Yksi vastauksista on jmeterin ajaminen hajautetussa tilassa. Niille teistä, jotka eivät ole koskaan kuulleet siitä, tässä on lyhyt selitys.
kun puhutaan jmeterin jakamisesta, viitataan Master-Slave-arkkitehtuuriin, jossa JMeter käyttää Java RMI: tä vuorovaikutuksessa hajautetun verkon objektien kanssa. Näet tämän alla olevasta kuvasta.
hajautettu testaus mahdollistaa paikallisen Jmeter (master), joka hoitaa testin suorittamisen, sekä useita kauko Jmeter-esiintymiä (slaves), jotka lähettävät pyynnön kohdepalvelimellemme.
mutta ennen kuin voi ajaa jmeteriä hajautetusti, on suoritettava pari yksinkertaista askelta.
ensin tarvitaan useita tietokoneita.
sitten meidän on saatava JMeter-palvelin käyntiin jokaisessa orjajärjestelmässämme. Sitä varten meidän on suoritettava jmeter-palvelin.bat (Jmeter-palvelin Unix-käyttäjille), joka sijaitsee Jmeter/bin. Kun ajamme sen, meidän pitäisi nähdä jotain tällaista.:
sitten, läpi samaa polkua, mutta master järjestelmä, paikantaa jmeter.properties fil. Muokkaa tätä tiedostoa ja lisää kaikkien niiden slave-järjestelmien IPs, joiden pitäisi olla mukana ominaisuudessa remote_hosts. Varmista, että isäntä ja orja järjestelmät sijaitsevat samassa aliverkossa.
on erittäin tärkeää muistaa, että kaikki arvot on erotettava pilkuilla (tässä esimerkissä käytämme vain yhtä orjajärjestelmää, vain pitääksemme sen yksinkertaisena).
kun kaikki nämä vaiheet on suoritettu, voimme aloittaa Jmeterin ja suorittaa tarvittavat testit. Tässä tapauksessa, aiomme suorittaa JMeter käyttäen GUI-tilassa, joten voimme olla parempi käsitys siitä, miten se toimii. Kuitenkin, ei-GUI tila on erittäin suositeltavaa testaustarkoituksiin.
käyttäjämäärä, ylösajo ja iteroinnit tulisi määrittää master systems-Kierreryhmässä tavalliseen tapaan. Testin aikana nämä olosuhteet toistetaan jokaisessa orjajärjestelmässä.
käynnistämisen jälkeen JMeter ja lastaus testi, meillä on kaksi vaihtoehtoa. Yksi, joka on määritetty master-järjestelmän kautta, on Suorita – >Etäkäynnistys ja valitse sitten slave-järjestelmä, jossa haluamme suorittaa. Toinen, joka on myös määritetty master-järjestelmän kautta, on Suorita – >Etäkäynnistys kaikki käynnistääksesi testin kaikilla käytettävissä olevilla slave-järjestelmillä.
(koska asetamme vain yhden orjajärjestelmän, ei ole eroa kahden vaihtoehdon välillä tässä esimerkissä).
tässä meillä on yksinkertainen skenaario, jossa voimme etsiä ja katsoa artikkelia verkkokauppasivustolta:
kuten näet, olemme lisänneet View Results Tree listener, jotta voimme tarkistaa, onko testi suoritettu oikein vai ei. Kun suoritamme testin etänä, voimme nähdä testituloksen paikallisesti puun kuuntelija-näkymässä, kuten jo mainitsin, mutta orjajärjestelmissä voimme vain tarkkailla testin alkamisaikaa ja päättymisaikaa.
Paikallisesti:
Etänä:
kulissien takana jokainen orjajärjestelmä suorittaa kuormitustestit niillä ehdoilla, jotka asetamme isäntäjärjestelmään. Näin saavutamme suuremman määrän samanaikaisia käyttäjiä ja siten suuremman kuormituksen kohdepalvelimellemme.
jos siis haluamme todella jakaa kuorman, meidän on tehtävä se manuaalisesti. Esim: Jos haluamme saavuttaa 10 000 samanaikaista käyttäjää ja meillä on 10 orjajärjestelmää, testisuunnitelmassamme on oltava 1000 käyttäjää, joten meillä on lopulta 10 000 yhteensä.
toinen mielenkiintoinen asia, jonka voimme tehdä, on lisätä logiikkaa testiimme lisäämällä If-ohjaimen. If-ohjaimen avulla voimme valita tietyn virtauksen, jonka haluamme suorittaa, riippuen järjestelmästä, joka suorittaa testin. Ao, eri orjajärjestelmät suorittaisivat testin eri osia.
esimerkiksi, jos lisäämme parametrin ajettaessa Jmeter-palvelinta slave-järjestelmissä (./jmeter-server-Jparam=1) voimme asettaa if-ohjaimeen ehdon, kuten ${__javaScript(${param}==1)}, jotta voimme suorittaa tiettyjä pyyntöjä riippuen slave-järjestelmästä.
That ’ s it! Olemme onnistuneesti suoritettu testi yli Jmeter hajautettu järjestelmä. Tämä ei ehkä näytä kovin monimutkaiselta, koska päätimme käyttää vain yhtä orjajärjestelmää. Mutta jos pitää simuloida 25 000 samanaikaista käyttäjää, kaikkien näiden järjestelmien ylläpitokustannukset ovat valtavat. Voi olla mahdollista kiertää huolto kysymyksiä ja se on asentaa kaikki arkkitehtuuri, että olemme nähneet yli Docker kontteja (näet esimerkin tässä).
tämä ei kuitenkaan vielä riitä, jos tavoitteenamme on suorittaa kuormitustestejä määräajoin. Olemme asentaneet kaiken hajautetun arkkitehtuurin yhteen tietokoneeseen, joten kulutamme huomattavan määrän resursseja. Käsite jakaa Jmeter yli Docker on järkevämpää, jos meillä on mahdollisuus lisätä määrää konttien kysynnän, kuten pilvipalvelussa.
toinen vaikeus jmeterin ajamisessa hajautetussa tilassa on se, miten CSV-tiedostoja käsitellään, kun testeissä on parametrisoitua dataa. Tämä johtuu siitä, että meidän täytyy olla erillisiä tiedostoja, ja jos meidän täytyy päivittää niitä, meidän täytyy mennä jokaiseen slave-järjestelmään ja tehdä muutoksia.
kaikkien näiden rajoitusten ja haittojen ratkaisemiseksi Voimme käyttää Blazemeteriä, joka tarjoaa meille helpon tavan käsitellä kuormitustestejämme. Kaikki mitä meidän tarvitsee tehdä ladata meidän JMX tiedosto BlazeMeter. Voimme myös ladata konsolidoidun CSV-tiedoston, jossa on kaikki tarvittavat tiedot ja BlazeMeter huolehtii sen jakamisesta riippuen siitä, kuinka paljon moottoreita olemme asettaneet.
Blazemeterillä voimme asettaa käyttäjämäärän tai moottorien (orjajärjestelmien) ja kierteiden yhdistelmän, jota haluamme soveltaa testeissämme. Voimme myös määrittää lisäarvoja, kuten useita sijainteja.
testitulokset:
nyt riitti! Nyt olet nähnyt muutamia ratkaisuja kuormitustestien suorittamiseen suuressa mittakaavassa, suositukseni sinulle on luoda oma kokemuksesi ja tehdä päätös siitä, mikä vaihtoehto tarjoaa sinulle suurempia etuja.
Lue lisää Jmeterin käytöstä vapaasta Jmeter-akatemiastamme.