HTTP-välityspalvelin sisään JMeter: Tallenna esimerkkiskripti
⚡ Älykäs yhteenveto
JMeter HTTP-välityspalvelin tallentaa selaintoiminnan uudelleenkäytettävään testiskriptiin. Tallennin sijaitsee selaimen ja verkkosivuston välissä, tallentaa jokaisen pyynnön tallennusohjaimeen, ja useat virtuaalikäyttäjät toistavat tallennetun suunnitelman.

Mikä on JMeter HTTP-välityspalvelin?
JMeter HTTP-välityspalvelin on sisäänrakennettu tallennin, joka sijaitsee selaimen ja testattavan verkkosivuston välissä. Se tarkkailee ja tallentaa käyttäjän toimintaa sovelluksen normaalin selaamisen aikana ja muuntaa jokaisen siepatun pyynnön HTTP-pyyntönäytteeksi testisuunnitelman sisällä. Koska JMeter 3.0 elementti on nimetty HTTP(S)-testiskriptien tallennin, ja molemmat nimet kuvaavat samaa komponenttia.
ennätys testaus auttaa testaajaa tallentamaan ja toistamaan aktiviteettia testikohdetta vastaan. Se on automatisoitu testaustyyppi, mutta useille käyttäjille samanaikaisesti.
Miksi äänittää sen sijaan, että rakentaisi käsikirjoituksen käsin?
Realistinen käyttäjäkokemus modernilla sivustolla tuottaa kymmeniä pyyntöjä, joilla jokaisella on omat otsikkonsa, evästeensä ja lomakeparametrinsa. Typing Kaiken tämän syöttäminen näytteenottoihin käsin on hidasta ja virhealtista. Tallennus tallentaa selaimen lähettämän liikenteen tarkasti, mikä tarjoaa kolme etua:
- Tarkkuus: Ylätunnisteiden järjestys, evästeet ja piilotetut lomakekentät tallennetaan täsmälleen sellaisena kuin palvelin ne vastaanotti.
- Nopeus: Kymmensivuisen matkan tallentaminen vie minuutteja ja käsin kirjoittaminen tunteja.
- Kattavuus: Käyttöliittymässä näkymättömät taustalla tehtävät AJAX-kutsujen näkyvät edelleen tallenteessa.
Tallenne on pikemminkin lähtökohta kuin valmis testi. Se vaatii vielä puhdistamista, korrelointia ja parametrisointia ennen kuin sitä voidaan käyttää. kuormitustestausAlla olevat osiot kattavat koko polun tyhjästä JMeter ikkuna skriptiin, joka toistuu luotettavasti.
Tässä on roadmap tästä käytännön esimerkistä
Kuinka tallentaa skripti JMeter 5.x
Nykyinen julkaisu on Apache JMeter 5.6.3, julkaistu 9. tammikuuta 2024, ja se edellyttää Java 8 tai uudempi, ja Java 17 suositellaan. Kukaan, joka seuraa tällä sivulla myöhemmin kyseisessä versiossa annettua kuvitettua läpikäyntiä, ei löydä WorkBench-solmua, koska se poistettiin versiosta 5.0. Toiminto ei kadonnut; se siirtyi. Tallennin on nyt lisätty suoraan testisuunnitelmaan ja sitä kutsutaan HTTP(S)-testiskriptien tallentimeksi.
Nopein reitti on pakettimalli. Valitse filee > Mallit > Äänite ja JMeter luo täydellisen suunnitelman, joka sisältää säikeiden ryhmän, HTTP-pyyntöjen oletusarvot, tallennusohjaimen ja itse tallentimen, jotka on jo kytketty yhteen. Saman rakenteen rakentaminen käsin tapahtuu seuraavasti.
- Rakenna suunnitelmarunko. Lisää ensin säieryhmä ja sitten sen alle tallennusohjain. Tähän tallennetut samplerit päätyvät.
- Lisää tallennin testisuunnitelmaan. Napsauta hiiren kakkospainikkeella Testisuunnitelma-solmua ja valitse Lisää > Ei-testielementit > HTTP(S)-testiskriptien tallenninSe on Thread Groupin sisarus, ei lapsi.
- Aseta portti. Oletusarvo on 8888. Mikä tahansa vapaa portti toimii, jos selain on määritetty vastaavaksi.
- Valitse Target Ohjain. Valitse vaiheessa yksi luotu tallennusohjain, jotta pyynnöt ryhmitellään odotettuihin paikkoihin sen sijaan, että ne hajaantuisivat suunnitelman juuressa.
- Lisää URL poissulkemismallit. Sulje Pyyntöjen suodatus -välilehdellä pois staattiset resurssit käyttämällä esimerkiksi seuraavaa kaavaa: .*\.(bmp|css|js|gif|ico|jpe?g|png|svg|woff2?)Tämä poistaa suurimman osan myöhemmin kuvattavasta manuaalisesta puhdistuksesta.
- Käynnistä tallennin. Napauta Aloita tallentimen paneelin yläosassa. JMeter kirjoittaa ApacheJMeterTemporaryRootCA.crt-tiedosto siirretään nyt roskakorikansioon, mikä mahdollistaa HTTPS-tallennuksen.
- Osoita selain välityspalvelimelle käyttämällä localhostia ja valittua porttia ja navigoi sitten sovelluksessa normaalisti.
- Pysähdy ja siivoa. Paina Pysäytä, poista jäljellä olevat kolmannen osapuolen puhelut ja tallenna suunnitelma.
- Vahvista ennen skaalausta. Napsauta hiiren kakkospainikkeella ketjuryhmää ja valitse vahvistaaTämä suorittaa suunnitelman kerran yhdellä säikeellä, joten virheet tulevat esiin ennen kuormituksen kohdistamista.
Vielä yksi tapa erottaa toimivan skriptin luotettavasta. Käytä graafista käyttöliittymää vain skriptin rakentamiseen ja virheenkorjaukseen ja suorita sitten varsinainen testi komentoriviltä komennolla jmeter -n -t plan.jmx -l tulokset.jtl -e -o raportti, joka myös luo HTML-koontinäytön. Sama komento on perustana funktiolle hajautettu testaus useiden kuormageneraattoreiden kautta. Asennus on käsitelty JMeter Asennusohje, ja koko menettely on dokumentoitu Apache JMeter tallentimen sivu.
⚠️ Versiohuomautus: Alla olevan ohjeen näytöt on otettu vanhemmalla kameralla. JMeter julkaisussa, jossa WorkBench-solmu oli edelleen mukana. WorkBench poistettiin vuonna JMeter 5.0. Kaikki käsitteet pätevät edelleen; vain tallentimen sijainti muuttuu, ja nykyinen menettelytapa on edellä annettu.
Vaihe 1) HTTP-välityspalvelimen asettaminen
Tämä on vaiheittainen opas välityspalvelimen asennukseen
- Aloita JMeter
- valita Testisuunnitelma puussa
- Lisää ViestiryhmäNapsauta hiiren kakkospainikkeella Testisuunnitelma ja lisää uusi viestiketju: Lisää > Säikeet (käyttäjät) > Viestiryhmä
- Lisää HTTP-pyyntöValitse säikeiden ryhmä; napsauta hiiren kakkospainikkeella. Lisää > Konfigurointielementti > HTTP-pyynnön oletusarvot
Uudessa HTTP Request Defaults -elementissä: kirjoita kohtaan Palvelimen nimi tai IP "google.com". Muut kentät tulee jättää tyhjiksi
- Lisää TallennusohjainNapsauta hiiren kakkospainikkeella ”Thread Group” -kohtaa ja lisää tallennusohjain: Lisää > Looginen ohjain > Tallennusohjain
- Lisää Proxy Server WorkBenchiin. Napsauta hiiren kakkospainikkeella Workbenchiä ja lisää http-välityspalvelin: Lisää > Ei-testielementit > HTTP-välityspalvelin. Päällä JMeter 5.x, napsauta hiiren kakkospainikkeella Testisuunnitelma solmu sen sijaan ja valitse HTTP(S)-testiskriptien tallennin.
- Asettaa Target ohjain johon tallentamasi skriptit lisätään
- Aloita Välityspalvelin. Palaa HTTP-välityspalvelimeen ja napsauta Aloita painiketta alareunassa. Nyt sinun JMeter välityspalvelimen käynnistys
- Käynnistä selain (käytin Firefox), valitse Työkalu > Vaihtoehto > Lisää > verkkotuotteet > Asetus > Syötä HTTP-välityspalvelin alla olevan kuvan mukaisesti. Nykyisessä Firefox julkaisujen kautta samaan dialogiin päästään Asetukset > general > Verkkoasetukset.
Vaihe 2) Tallenna toimintasi
- Nyt Käynnistä http://www.google.com selaimessasi (JMeter edelleen auki)
- Hae aktiviteetit avainsanalla "guru 99".
- Takaisin JMeter, napsauta HTTP-välityspalvelimessa stop kun valmis
- Kun tallennus on valmis, näet JMeter loi automaattisesti uuden HTTP-pyynnön alla olevan kuvan mukaisesti
JMeter on jo tallentanut käyttäjän pyynnön Kotisivulle of Google -sivustolta. http://www.google.com/
Muut HTTP-pyynnöt näkyvät yllä olevassa kuvassa, sinun tulee poistaa ne. Koska joskus JMeter tallentaa myös joitakin mainoslinkkejä, kun haet avainsanaa GoogleMeidän tulisi jättää ne huomiotta testisuunnitelmassamme.
- Valitse Tiedosto > Tallenna testisuunnitelma nimellä
- Näyttöön tulee valintaikkuna > kirjoita testisuunnitelmasi nimi Tiedostonimi-kenttään > napsauta Tallenna. Testisuunnitelmasi on nyt tallennettu nimellä RecordingTestPlan.jmx
Vaihe 3) Suorita testisuunnitelmasi
- valita Säikeiden ryhmä > Lisää > Kuuntelija > Yhteenvetoraportti
- Yhteenvetoraportti näyttää perusstatiikan
- Valitse säikeryhmä, syötä tiedot alla olevan kuvan mukaisesti
Voit viitata artikkeliin JMeter Suorituskykytestaus tietää yksityiskohdat säikeiden ryhmittelystä.
- Ennen testin aloittamista valitse ”Yhteenvetoraportti”. Kun olet valmis suorittamaan testin, valitse Suorita > Käynnistä (Ctrl+R). JMeter toistaa aktiviteettisi 100 kertaa. Testin suorituksen aikana tilastot muuttuvat, kunnes testi on valmis.
Vaihe 4) Tallenna testitulos
- Napauta Tallenna taulukon tiedot tallentaaksesi testituloksen tiedostoon
- Kirjoita testituloksen nimi ja napsauta Tallenna. Testin tulos sisään JMeter on tallennettu *.csv-muodossa oletuksena
Lataa tiedostojen tallennustestisuunnitelma
Lataa tiedosto HTTP-välityspalvelin
HTTPS-liikenteen ja varmenteiden tallentaminen
Lähes jokainen sivusto käyttää nykyään HTTPS-protokollaa, jota alkuperäinen ohjeistus edeltää. Välityspalvelin ei voi lukea salattua liikennettä, ellei selain luota siihen, joten tarvitaan yksi ylimääräinen vaihe.
Kun tallennin käynnistyy, JMeter luo väliaikaisen juurisertifikaatin nimeltä ApacheJMeterVäliaikainenRootCA.crt sen bin-hakemistoon. Tuo tiedosto selaimeen luotettavana varmenteen myöntäjänä ja käynnistä selain uudelleen. JMeter voi nyt esittää oman varmenteensa jokaiselle sivustolle ja purkaa istunnon salauksen tallennusta varten.
Kolme asiaa on hyvä tietää:
- Todistus vanhenee seitsemän päivän kuluttua. Tämä on tarkoituksellista. Poista se ja anna JMeter luoda uusi sen sijaan, että pidentäisit voimassaoloa.
- Poista se, kun olet valmis. Luotetun juurivarmenteen jättäminen asennettuna toimivalle koneelle on todellinen tietoturvariski, ei teoreettinen.
- Jotkin sovellukset hylkäävät sen. Varmenteiden kiinnittämistä tai keskinäistä TLS:ää käyttäviä sivustoja ei voida tallentaa lainkaan välityspalvelimen kautta, ja skripti on sen sijaan rakennettava käsin selaimen kehitystyökaluilla.
Korrelaatio: Tallennetun käsikirjoituksen tekeminen toistettavaksi
Tallennettu skripti toistaa täsmälleen sen, mikä tapahtui kerran, mikä harvoin tapahtuu toisella kerralla. Tallennuksen aikana tallennetut istuntotunnisteet, tokenit ja generoidut avaimet ovat kuolleita arvoja skriptin toiston aikaan, ja suoritus epäonnistuu tavoilla, jotka näyttävät sovellusvirheiltä.
Korrelaatio on ratkaisu. jälkikäsittelijä kuten säännöllisen lausekkeen esimerkkitractor tai JSON Extractor kaappaa kirjautumisvastauksesta uuden arvon, tallentaa sen muuttujaan ja myöhemmin pyynnöt viittaavat tähän muuttujaan tallennetun literaalin sijaan.
Työnkulku on lyhyt:
- Toista skripti kerran View Results Tree -kuuntelijalla ja etsi ensimmäinen epäonnistunut pyyntö.
- Vertaa epäonnistunutta pyyntöä tallenteeseen. Kaikki kahden suorituskerran väliset erot on korreloitava.
- Lisää entinentractor siihen vastaukseen, joka tuotti arvon, ja korvaa sitten kovakoodattu literaali muuttujaviittauksella.
- Lisää väite Joten sivu, joka palauttaa HTTP 200 -koodin virheilmoituksella, ei silti läpäise testiä.
Vasta korrelaation jälkeen skripti on turvallinen skaalata ylöspäin. Korreloimattoman tallennuksen suorittaminen sadalla käyttäjällä mittaa virheiden käsittelyä pikemminkin kuin suorituskykyLisää elementtejä käsitellään kaikkialla JMeter opetusohjelmat.
Ongelmien karttoittaminen
Jos kohtaat ongelman yllä olevan skenaarion suorittamisen aikana, toimi seuraavasti:
- Tarkista, muodostatko yhteyden Internetiin välityspalvelimen kautta. Jos kyllä, poista välityspalvelin.
- Avaa uusi esiintymä JMeter.
- Avaa RecordingTestPlan.jmx-tiedosto JMeter.
- Napsauta hiiren kakkospainikkeella Workbenchia > Yhdistä > Valitse HTTP Proxy Server.jmx. JMeter 5.x, yhdistä ne sen sijaan Test Plan -solmuun, koska WorkBenchiä ei enää ole.
- Napsauta Säikeiden ryhmä > Yhteenvetoraportti.
- Suorita testi.
Kaksi muuta oiretta selittävät useimpia jäljellä olevia virheitä. Jos selain ilmoittaa, ettei se voi muodostaa yhteyttä, tallenninta ei ole koskaan käynnistetty tai selaimessa asetettu portti ei vastaa palvelimella asetettua porttia. JMeterJos sivut latautuvat normaalisti, mutta puussa ei näy mitään, liikenne on HTTPS-liikennettä eikä varmennetta ole tuotu.



















