HTTP proxy poslužitelj u JMeter: Snimite primjer skripte
⚡ Pametni sažetak
JMeter HTTP proxy poslužitelj bilježi aktivnost preglednika u višekratno upotrebljiv testni skript. Snimač se nalazi između preglednika i web-stranice, bilježi svaki zahtjev u kontroler snimanja, a spremljeni plan reproduciraju mnogi virtualni korisnici.

Što je JMeter HTTP proxy poslužitelj?
The JMeter HTTP proxy poslužitelj je ugrađeni snimač koji se nalazi između preglednika i testirane web stranice. Prati i bilježi aktivnosti korisnika dok se aplikacija normalno pregledava i pretvara svaki snimljeni zahtjev u uzorak HTTP zahtjeva unutar plana testiranja. Budući da JMeter 3.0 element je nazvan Snimač testnih skripti HTTP(S), a oba naziva opisuju istu komponentu.
Zapis testiranje pomaže testeru da zabilježi i ponovno reproducira aktivnost na testnoj meti. To je vrsta automatiziranog testiranja, ali za više korisnika odjednom.
Zašto snimati umjesto ručnog pisanja scenarija?
Realistično korisničko putovanje na modernoj web stranici proizvodi desetke zahtjeva, svaki sa svojim zaglavljima, kolačićima i parametrima obrasca.ping Ručno ubacivanje svega toga u samplere je sporo i sklono greškama. Snimanje bilježi točan promet koji je preglednik poslao, što daje tri prednosti:
- Točnost: Redoslijed zaglavlja, kolačići i skrivena polja obrasca bilježe se točno onako kako ih je poslužitelj primio.
- Brzina: Zabilježavanje putovanja od deset stranica traje nekoliko minuta, a ručno pisanje satima.
- pokrivenost: Pozadinski AJAX pozivi koji su nevidljivi u sučelju i dalje se pojavljuju u snimci.
Snimka je početna točka, a ne završen test. Još uvijek ju je potrebno očistiti, korelirati i parametrizirati prije nego što bude upotrebljiva za... ispitivanje opterećenjaOdjeljci u nastavku pokrivaju cijeli put od praznog JMeter prozor za skriptu koja se pouzdano reproducira.
Ovdje je Putokaz ovog praktičnog primjera
Kako snimiti skriptu u JMeter 5.x
Trenutno izdanje je Apache JMeter 5.6.3, objavljen 9. siječnja 2024., i zahtijeva Java 8 ili kasnije, s Java 17 preporučeno. Svatko tko slijedi ilustrirani vodič dalje na ovoj stranici o tom izdanju neće pronaći čvor WorkBench jer je uklonjen u verziji 5.0. Funkcionalnost nije nestala; premještena je. Snimač je sada dodan izravno u Plan testiranja i naziva se Snimač HTTP(S) testnih skripti.
Najbrži put je predložak u paketu. Odaberite file > Predlošci > Snimanje i JMeter generira kompletan plan koji sadrži grupu niti, zadane postavke HTTP zahtjeva, kontroler snimanja i sam snimač, već povezane. Ručna izgradnja iste strukture uključuje sljedeće korake.
- Izgradite kostur plana. Dodajte grupu niti, a zatim ispod nje dodajte kontroler snimanja. Ovdje će se nalaziti snimljeni uzorci.
- Dodajte snimač u plan testiranja. Desnim klikom miša kliknite čvor Plan testiranja i odaberite dodati > Elementi koji nisu za testiranje > Snimač testnih skripti HTTP(S)To je blizak element Grupe niti, a ne podređeni element.
- Postavite port. Zadana vrijednost je 8888. Radi bilo koji slobodni port, pod uvjetom da je preglednik konfiguriran tako da odgovara.
- Odaberite Target Kontroler. Odaberite kontroler snimanja stvoren u prvom koraku kako bi se zahtjevi grupirali tamo gdje očekujete, a ne raspršili u korijenu plana.
- dodati URL obrasci isključenja. Na kartici Filtriranje zahtjeva isključite statičke resurse pomoću uzorka kao što je .*\.(bmp|css|js|gif|ico|jpe?g|png|svg|woff2?)Time se uklanja većina ručnog čišćenja opisanog kasnije.
- Pokrenite snimač. Kliknite Start na vrhu ploče snimača. JMeter piše ApacheJMeterDatoteku TemporaryRootCA.crt trenutno spremite u mapu bin, što omogućuje HTTPS snimanje.
- Usmjerite preglednik prema proxyju koristeći localhost i odabrani port, a zatim normalno krećite aplikacijom.
- Stani i pospremi. Pritisnite Stop, izbrišite sve preostale pozive trećih strana i spremite plan.
- Validirajte prije skaliranja. Desnim klikom miša kliknite grupu niti i odaberite potvrditiOvo pokreće plan jednom s jednom niti, tako da se greške pojavljuju prije nego što se primijeni bilo kakvo opterećenje.
Još jedna navika razlikuje funkcionalnu skriptu od pouzdane. Koristite grafičko sučelje samo za izradu i ispravljanje pogrešaka, a zatim pokrenite pravi test iz naredbenog retka s jmeter -n -t plan.jmx -l rezultati.jtl -e -o izvješće, koji također generira HTML nadzornu ploču. Ista naredba je osnova za distribuirano testiranje preko nekoliko generatora opterećenja. Instalacija je obuhvaćena u JMeter Vodič za instalaciju, a cijeli postupak je dokumentiran na Apache JMeter stranica snimača.
⚠️ Napomena o verziji: Zasloni u donjem vodiču snimljeni su starijim JMeter izdanje koje je još uvijek imalo čvor WorkBench. WorkBench je uklonjen u JMeter 5.0. Svaki koncept i dalje vrijedi; mijenja se samo lokacija snimača, a trenutni postupak je onaj gore naveden.
Korak 1) Postavljanje HTTP proxy poslužitelja
Ovo je vodič korak po korak za postavljanje proxyja
- Start JMeter
- odabrati Plan testiranja na drvetu
- dodati Grupa nitiDesni klik na Plan testiranja i dodajte novu grupu niti: dodati > Niti (korisnici) > Grupa niti
- dodati HTTP zahtjevOdaberite grupu niti; kliknite desnom tipkom miša dodati > Element konfiguracije > Zadane postavke HTTP zahtjeva
U novom elementu zadanih postavki HTTP zahtjeva: u naziv poslužitelja ili IP unesite "google.com". Ostala polja trebate ostaviti prazna
- dodati Kontrolor snimanjaDesnim klikom miša odaberite "Grupu niti" i dodajte kontroler snimanja: dodati > Logički kontroler > Kontrolor snimanja
- dodati Proxy Server na WorkBench. Desnim klikom miša kliknite na Workbench i dodajte http proxy: dodati > Elementi koji nisu za testiranje > HTTP proxy poslužitelj, Na JMeter 5.x, kliknite desnom tipkom miša na Plan testiranja čvor umjesto toga i odaberite Snimač testnih skripti HTTP(S).
- Postaviti Target kontrolor gdje će se dodati vaše snimljene skripte
- Start Proxy poslužitelj. Vratite se na HTTP proxy poslužitelj i kliknite Start gumb na dnu. Sada tvoj JMeter pokretanje proxy poslužitelja
- Pokrenite svoj preglednik (koristio sam Firefox), odaberite Oruđe > opcija > napredan > mreža > Postavljanje > Unesite HTTP proxy kao na slici ispod. U trenutnom Firefox objavljuje se isti dijalog koji se postiže putem Postavke > Osnovne informacije > Network Settings.
Korak 2) Zabilježite svoju aktivnost
- Sada Pokreni http://www.google.com u vašem web pregledniku (JMeter još uvijek otvoreno)
- Pretražuju li aktivnosti ključnu riječ "guru99".
- Povratak na JMeter, kliknite na HTTP proxy poslužitelj zaustaviti kada završi
- Nakon završetka snimanja vidjet ćete JMeter automatski stvorio novi HTTP zahtjev kao na slici ispod
JMeter već je snimio korisnički zahtjev za početnu stranicu of Google web stranicu. http://www.google.com/
Ostali HTTP zahtjevi prikazani na gornjoj slici, trebali biste ih ukloniti. Jer kad-tad JMeter također bilježi neke reklamne poveznice dok pretražujete ključnu riječ na GoogleTrebali bismo ih ignorirati u našem planu testiranja.
- Kliknite Datoteka > Spremi svoj plan testiranja kao
- Prikazat će se dijaloški okvir > unesite naziv svog plana testiranja u polje Naziv datoteke > kliknite Spremi. Vaš plan testiranja sada je spremljen pod nazivom RecordingTestPlan.jmx
Korak 3) Pokrenite svoj plan testiranja
- odabrati Grupa niti > Dodaj > Slušač > Sažeto izvješće
- Sažeto izvješće prikazat će neke osnovne statistike
- Odaberite Grupu niti, unesite podatke kao na slici ispod
Možete se pozvati na članak JMeter Ispitivanje performansi kako biste saznali detalje o konfiguriranju grupe niti.
- Prije početka testa odaberite "Sažetak izvješća". Kada ste spremni pokrenuti test, odaberite Pokreni > Start (Ctrl+R). JMeter reproducirat će vašu aktivnost 100 puta. Kako se test izvodi, statistika će se mijenjati sve dok se test ne završi.
Korak 4) Spremite rezultat testa
- Kliknite Spremi podatke tablice za spremanje rezultata testa u datoteku
- Unesite naziv rezultata testa i kliknite Spremi. Rezultat testa u JMeter sprema se u *.csv formatu kao zadanom
Preuzmite plan testiranja snimanja datoteke
Preuzmite Datotečni HTTP proxy poslužitelj
Snimanje HTTPS prometa i certifikata
Gotovo svaka stranica sada poslužuje HTTPS, kojemu je izvorni vodič prethodio. Proxy ne može čitati šifrirani promet osim ako mu preglednik ne vjeruje, pa je potreban još jedan korak.
Kada se snimač pokrene, JMeter generira privremeni korijenski certifikat pod nazivom apašJMeterPrivremeniRootCA.crt u direktoriju bin. Uvezite tu datoteku u preglednik kao pouzdani autoritet za certifikate, a zatim ponovno pokrenite preglednik. JMeter sada može predstaviti vlastiti certifikat za svaku lokaciju i dešifrirati sesiju za snimanje.
Vrijedi znati tri točke:
- Certifikat ističe nakon sedam dana. Ovo je namjerno. Izbriši to i pusti JMeter regenerirati novi umjesto produžiti valjanost.
- Uklonite ga kada završite. Ostavljanje pouzdanog korijenskog certifikata instaliranog na radnom računalu predstavlja stvarni sigurnosni rizik, a ne teoretski.
- Neke aplikacije to odbijaju. Web-lokacije koje koriste prikvačivanje certifikata ili uzajamni TLS uopće se ne mogu snimati putem proxyja, a skripta se umjesto toga mora ručno izraditi iz alata za razvojne programere preglednika.
Korelacija: Omogućavanje ponovne reprodukcije snimljenog scenarija
Snimljena skripta reproducira točno ono što se dogodilo jednom, što se rijetko događa drugi put. Identifikatori sesija, tokeni i generirani ključevi snimljeni tijekom snimanja postaju nevažeći kada se skripta ponovno reproducira, a izvođenje ne uspijeva na načine koji izgledaju kao pogreške aplikacije.
Korelacija je rješenje. A postprocesor kao što je regularni izraz Extractor ili JSON ExtracTor hvata svježu vrijednost iz odgovora prijave, pohranjuje je u varijablu i kasnije zahtjevi referenciraju tu varijablu umjesto snimljenog literala.
Tijek rada je kratak:
- Ponovno reproducirajte skriptu jednom s slušačem View Results Tree i pronađite prvi neuspjeli zahtjev.
- Usporedite neuspjeli zahtjev sa snimkom. Bilo koja vrijednost koja se razlikuje između dvaju pokretanja mora se korelirati.
- Dodaj bivšeg/bivšutractor na odgovor koji je proizveo vrijednost, a zatim zamijenite čvrsto kodirani literal referencom varijable.
- Dodaj an tvrdnja pa stranica koja vraća HTTP 200 s porukom o pogrešci i dalje ne prolazi test.
Tek nakon korelacije skripta je sigurna za skaliranje. Pokretanje nekoreliranog snimanja na stotinu korisnika mjeri rukovanje pogreškama, a ne predstavaDaljnji elementi su obuhvaćeni u cijelom JMeter tutoriali.
Rješavanje problema
Ako se prilikom izvođenja gore navedenog scenarija suočite s problemom, učinite sljedeće:
- Provjerite povezujete li se na internet putem proxyja. Ako da, uklonite proxy.
- Otvorite novu instancu JMeter.
- Otvorite datoteku RecordingTestPlan.jmx u JMeter.
- Desni klik na Workbench > Merge > Select HTTP Proxy Server.jmx. Uključeno JMeter 5.x, umjesto toga spojite u čvor Test Plan, budući da WorkBench više ne postoji.
- Kliknite na Grupa niti > Sažeto izvješće.
- Pokreni test.
Dva dodatna simptoma objašnjavaju većinu preostalih kvarova. Ako preglednik prijavi da se ne može povezati, snimač nikada nije pokrenut ili port postavljen u pregledniku ne odgovara portu postavljenom u JMeterAko se stranice normalno učitavaju, ali se ništa ne prikazuje u stablu, promet je HTTPS i certifikat nije uvezen.



















