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.

  • 🎬 Ydintarkoitus: Välityspalvelin tarkkailee ja tallentaa käyttäjän toimia, kun tavallinen selain navigoi testattavassa sovelluksessa.
  • 🧱 Suunnitelmaluuranko: Säikeiden ryhmä, HTTP-pyyntöjen oletusasetukset ja tallennusohjain luodaan ennen tallennuksen aloittamista.
  • 🎯 Target ohjain: Tämä asetus määrittää, mihin kaapatut näytteenotot kirjoitetaan testisuunnitelman puussa.
  • 🌐 Selaimen asetukset: Selaimen on osoitettava HTTP-välityspalvelimensa osoitteeseen JMeter portti, oletuksena 8888.
  • 🔐 HTTPS-tallennus: Tuo ApacheJMeterTemporaryRootCA.crt luotettavana viranomaisena ja poista se myöhemmin.
  • 🧹 Puhdista skripti: Myös mainos- ja analytiikkapyynnöt tallennetaan, ja ne tulisi sulkea pois tai poistaa.
  • 🔗 Korreloi ennen skaalausta: Korvaa tallennetut istuntotunnukset ex-tiedostollatracted-muuttujia, tai toisto epäonnistuu.
  • ⚠️ Versiohuomautus: WorkBench poistettiin vuonna JMeter 5.0; elementti on nyt HTTP(S)-testiskriptien tallennin.

JMeter HTTP-välityspalvelimen tallennusskripti

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ä

HTTP-välityspalvelin sisään JMeter

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.

  1. Rakenna suunnitelmarunko. Lisää ensin säieryhmä ja sitten sen alle tallennusohjain. Tähän tallennetut samplerit päätyvät.
  2. Lisää tallennin testisuunnitelmaan. Napsauta hiiren kakkospainikkeella Testisuunnitelma-solmua ja valitse Lisää > Ei-testielementit > HTTP(S)-testiskriptien tallenninSe on Thread Groupin sisarus, ei lapsi.
  3. Aseta portti. Oletusarvo on 8888. Mikä tahansa vapaa portti toimii, jos selain on määritetty vastaavaksi.
  4. Valitse Target Ohjain. Valitse vaiheessa yksi luotu tallennusohjain, jotta pyynnöt ryhmitellään odotettuihin paikkoihin sen sijaan, että ne hajaantuisivat suunnitelman juuressa.
  5. 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.
  6. Käynnistä tallennin. Napauta Aloita tallentimen paneelin yläosassa. JMeter kirjoittaa ApacheJMeterTemporaryRootCA.crt-tiedosto siirretään nyt roskakorikansioon, mikä mahdollistaa HTTPS-tallennuksen.
  7. Osoita selain välityspalvelimelle käyttämällä localhostia ja valittua porttia ja navigoi sitten sovelluksessa normaalisti.
  8. Pysähdy ja siivoa. Paina Pysäytä, poista jäljellä olevat kolmannen osapuolen puhelut ja tallenna suunnitelma.
  9. 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

  1. Aloita JMeter
  2. valita Testisuunnitelma puussa
  3. Lisää ViestiryhmäNapsauta hiiren kakkospainikkeella Testisuunnitelma ja lisää uusi viestiketju: Lisää > Säikeet (käyttäjät) > Viestiryhmä

HTTP-välityspalvelimen asettaminen

  1. Lisää HTTP-pyyntöValitse säikeiden ryhmä; napsauta hiiren kakkospainikkeella. Lisää > Konfigurointielementti > HTTP-pyynnön oletusarvot

HTTP-välityspalvelimen asettaminen

Uudessa HTTP Request Defaults -elementissä: kirjoita kohtaan Palvelimen nimi tai IP "google.com". Muut kentät tulee jättää tyhjiksi

HTTP-välityspalvelimen asettaminen

  1. Lisää TallennusohjainNapsauta hiiren kakkospainikkeella ”Thread Group” -kohtaa ja lisää tallennusohjain: Lisää > Looginen ohjain > Tallennusohjain

HTTP-välityspalvelimen asettaminen

  1. 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.

HTTP-välityspalvelimen asettaminen

  1. Asettaa Target ohjain johon tallentamasi skriptit lisätään

HTTP-välityspalvelimen asettaminen

  1. Aloita Välityspalvelin. Palaa HTTP-välityspalvelimeen ja napsauta Aloita painiketta alareunassa. Nyt sinun JMeter välityspalvelimen käynnistys

HTTP-välityspalvelimen asettaminen

  1. 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.

HTTP-välityspalvelimen asettaminen

Vaihe 2) Tallenna toimintasi

  1. Nyt Käynnistä http://www.google.com selaimessasi (JMeter edelleen auki)
  2. Hae aktiviteetit avainsanalla "guru 99".
  3. Takaisin JMeter, napsauta HTTP-välityspalvelimessa stop kun valmis

Tallenna toiminta

  1. Kun tallennus on valmis, näet JMeter loi automaattisesti uuden HTTP-pyynnön alla olevan kuvan mukaisesti

Tallenna toiminta

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.

  1. Valitse Tiedosto > Tallenna testisuunnitelma nimellä

Tallenna toiminta

  1. Näyttöön tulee valintaikkuna > kirjoita testisuunnitelmasi nimi Tiedostonimi-kenttään > napsauta Tallenna. Testisuunnitelmasi on nyt tallennettu nimellä RecordingTestPlan.jmx

Tallenna toiminta

Vaihe 3) Suorita testisuunnitelmasi

  1. valita Säikeiden ryhmä > Lisää > Kuuntelija > Yhteenvetoraportti

Suorita testisuunnitelma

  1. Yhteenvetoraportti näyttää perusstatiikan

Suorita testisuunnitelma

  1. Valitse säikeryhmä, syötä tiedot alla olevan kuvan mukaisesti

Suorita testisuunnitelma

Voit viitata artikkeliin JMeter Suorituskykytestaus tietää yksityiskohdat säikeiden ryhmittelystä.

  1. 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.

Suorita testisuunnitelma

Vaihe 4) Tallenna testitulos

  1. Napauta Tallenna taulukon tiedot tallentaaksesi testituloksen tiedostoon

Tallenna testitulos

  1. Kirjoita testituloksen nimi ja napsauta Tallenna. Testin tulos sisään JMeter on tallennettu *.csv-muodossa oletuksena

Tallenna testitulos

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:

  1. Toista skripti kerran View Results Tree -kuuntelijalla ja etsi ensimmäinen epäonnistunut pyyntö.
  2. Vertaa epäonnistunutta pyyntöä tallenteeseen. Kaikki kahden suorituskerran väliset erot on korreloitava.
  3. Lisää entinentractor siihen vastaukseen, joka tuotti arvon, ja korvaa sitten kovakoodattu literaali muuttujaviittauksella.
  4. 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:

  1. Tarkista, muodostatko yhteyden Internetiin välityspalvelimen kautta. Jos kyllä, poista välityspalvelin.
  2. Avaa uusi esiintymä JMeter.
  3. Avaa RecordingTestPlan.jmx-tiedosto JMeter.
  4. 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.
  5. Napsauta Säikeiden ryhmä > Yhteenvetoraportti.
  6. 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.

UKK

Se poistettiin vuonna JMeter 5.0. Muut kuin testielementit, kuten HTTP(S)-testiskriptien tallennin, lisätään nyt suoraan Testisuunnitelma-solmun alle.

Lisää URL tallentimen Pyyntöjen suodatus -välilehdellä poissuljettavat mallit. Yleisiä staattisia tiedostopäätteitä kattava malli poistaa suurimman osan kohinasta ennen kuin se saavuttaa komentosarjan.

Tekoäly luokittelee tallennetut näytteenotot liiketoimintavaiheisiin ja kolmannen osapuolen kohinaan ja ehdottaa sitten, mitkä niistä poistetaan ja mitkä arvot on korreloitava, mikä muuttaa raakatallenteen käyttökelpoiseksi skriptiksi nopeammin.

Kyllä. Tekoäly luonnostelee säännöllisen lausekkeen tai rajaparin vastauksen rungon ja tallennettavan arvon perusteella. Tarkista se Näytä tulokset -puussa, koska sama kuvio voi osua yhteen vastaukseen, mutta ei toiseen.

Selain ei luota siihen JMeter välityspalvelin. Tuo ApacheJMeterTemporaryRootCA.crt tiedostosta JMeter bin-kansio luotettavana tahona, käynnistä selain uudelleen ja tallenna uudelleen.

Kyllä. Aseta laitteen Wi-Fi-välityspalvelimeksi tallennuslaitteen IP-osoite ja portti ja asenna sitten JMeter varmenne laitteella. Varmenteen kiinnittämistä käyttäviä sovelluksia ei vieläkään voida tallentaa.

Ei. Graafinen käyttöliittymä on tarkoitettu rakentamiseen ja virheenkorjaukseen. Suorita varsinainen testi komentorivitilassa, joka käyttää paljon vähemmän muistia ja tuottaa lopuksi HTML-raportin.

Testisuunnitelmat tallennetaan .jmx-muodossa, joka on XML-muoto ja toimii hyvin versionhallinnassa. Tulokset kirjoitetaan .jtl-muodossa, joka on oletusarvoisesti CSV-tiedosto ja joka voidaan myös tallentaa XML-muodossa.

Tiivistä tämä viesti seuraavasti: