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.

  • 🎬 Osnovna svrha: Proxy prati i bilježi aktivnosti korisnika dok normalan preglednik navigira kroz testiranu aplikaciju.
  • 🧱 Kostur plana: Grupa niti, zadane postavke HTTP zahtjeva i kontroler snimanja stvaraju se prije početka snimanja.
  • 🎯 Target kontroler: Ova postavka određuje gdje se snimljeni uzorci zapisuju unutar stabla plana testiranja.
  • 🌐 Postavljanje preglednika: Preglednik mora usmjeriti svoj HTTP proxy na JMeter port, 8888 prema zadanim postavkama.
  • 🔐 HTTPS snimanje: Uvoz ApacheaJMeterTemporaryRootCA.crt kao pouzdani autoritet, a zatim ga uklonite.
  • 🧹 Očistite skriptu: Zahtjevi za oglašavanje i analitiku također se bilježe i treba ih isključiti ili izbrisati.
  • 🔗 Korelacija prije skaliranja: Zamijenite snimljene tokene sesije s extracted varijable ili ponovna reprodukcija ne uspije.
  • ⚠️ Napomena o verziji: WorkBench je uklonjen u JMeter 5.0; element je sada HTTP(S) snimač testnih skripti.

JMeter Skripta za zapis HTTP proxy poslužitelja

Š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

HTTP proxy poslužitelj u JMeter

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.

  1. Izgradite kostur plana. Dodajte grupu niti, a zatim ispod nje dodajte kontroler snimanja. Ovdje će se nalaziti snimljeni uzorci.
  2. 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.
  3. Postavite port. Zadana vrijednost je 8888. Radi bilo koji slobodni port, pod uvjetom da je preglednik konfiguriran tako da odgovara.
  4. 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.
  5. 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.
  6. 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.
  7. Usmjerite preglednik prema proxyju koristeći localhost i odabrani port, a zatim normalno krećite aplikacijom.
  8. Stani i pospremi. Pritisnite Stop, izbrišite sve preostale pozive trećih strana i spremite plan.
  9. 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

  1. Start JMeter
  2. odabrati Plan testiranja na drvetu
  3. dodati Grupa nitiDesni klik na Plan testiranja i dodajte novu grupu niti: dodati > Niti (korisnici) > Grupa niti

Postavljanje HTTP proxy poslužitelja

  1. dodati HTTP zahtjevOdaberite grupu niti; kliknite desnom tipkom miša dodati > Element konfiguracije > Zadane postavke HTTP zahtjeva

Postavljanje HTTP proxy poslužitelja

U novom elementu zadanih postavki HTTP zahtjeva: u naziv poslužitelja ili IP unesite "google.com". Ostala polja trebate ostaviti prazna

Postavljanje HTTP proxy poslužitelja

  1. dodati Kontrolor snimanjaDesnim klikom miša odaberite "Grupu niti" i dodajte kontroler snimanja: dodati > Logički kontroler > Kontrolor snimanja

Postavljanje HTTP proxy poslužitelja

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

Postavljanje HTTP proxy poslužitelja

  1. Postaviti Target kontrolor gdje će se dodati vaše snimljene skripte

Postavljanje HTTP proxy poslužitelja

  1. Start Proxy poslužitelj. Vratite se na HTTP proxy poslužitelj i kliknite Start gumb na dnu. Sada tvoj JMeter pokretanje proxy poslužitelja

Postavljanje HTTP proxy poslužitelja

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

Postavljanje HTTP proxy poslužitelja

Korak 2) Zabilježite svoju aktivnost

  1. Sada Pokreni http://www.google.com u vašem web pregledniku (JMeter još uvijek otvoreno)
  2. Pretražuju li aktivnosti ključnu riječ "guru99".
  3. Povratak na JMeter, kliknite na HTTP proxy poslužitelj zaustaviti kada završi

Zabilježite aktivnost

  1. Nakon završetka snimanja vidjet ćete JMeter automatski stvorio novi HTTP zahtjev kao na slici ispod

Zabilježite aktivnost

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.

  1. Kliknite Datoteka > Spremi svoj plan testiranja kao

Zabilježite aktivnost

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

Zabilježite aktivnost

Korak 3) Pokrenite svoj plan testiranja

  1. odabrati Grupa niti > Dodaj > Slušač > Sažeto izvješće

Pokreni plan testiranja

  1. Sažeto izvješće prikazat će neke osnovne statistike

Pokreni plan testiranja

  1. Odaberite Grupu niti, unesite podatke kao na slici ispod

Pokreni plan testiranja

Možete se pozvati na članak JMeter Ispitivanje performansi kako biste saznali detalje o konfiguriranju grupe niti.

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

Pokreni plan testiranja

Korak 4) Spremite rezultat testa

  1. Kliknite Spremi podatke tablice za spremanje rezultata testa u datoteku

Spremi rezultat testa

  1. Unesite naziv rezultata testa i kliknite Spremi. Rezultat testa u JMeter sprema se u *.csv formatu kao zadanom

Spremi rezultat testa

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:

  1. Ponovno reproducirajte skriptu jednom s slušačem View Results Tree i pronađite prvi neuspjeli zahtjev.
  2. Usporedite neuspjeli zahtjev sa snimkom. Bilo koja vrijednost koja se razlikuje između dvaju pokretanja mora se korelirati.
  3. Dodaj bivšeg/bivšutractor na odgovor koji je proizveo vrijednost, a zatim zamijenite čvrsto kodirani literal referencom varijable.
  4. 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:

  1. Provjerite povezujete li se na internet putem proxyja. Ako da, uklonite proxy.
  2. Otvorite novu instancu JMeter.
  3. Otvorite datoteku RecordingTestPlan.jmx u JMeter.
  4. 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.
  5. Kliknite na Grupa niti > Sažeto izvješće.
  6. 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.

Pitanja i odgovori

Uklonjeno je u JMeter 5.0. Elementi koji nisu za testiranje, poput HTTP(S) Test Script Recordera, sada se dodaju izravno pod čvor Test Plan.

dodati URL obrasce koje treba isključiti na kartici Filtriranje zahtjeva u snimaču. Uzorak koji pokriva uobičajene statičke ekstenzije datoteka uklanja većinu šuma prije nego što dođe do skripte.

Umjetna inteligencija klasificira snimljene uzorke u poslovne korake i šum treće strane, zatim predlaže koje treba izbrisati i koje vrijednosti treba korelirati, brže pretvarajući sirovi snimak u upotrebljiv scenarij.

Da. S obzirom na tijelo odgovora i vrijednost koju treba uhvatiti, umjetna inteligencija izrađuje regularni izraz ili granični par. Provjerite to u Pregledu stabla rezultata, budući da se uzorak može podudarati u jednom odgovoru, a ne u drugom.

Preglednik ne vjeruje JMeter proxy. Uvoz ApacheaJMeterTemporaryRootCA.crt iz JMeter bin mapu kao pouzdani autoritet, ponovno pokrenite preglednik i ponovno snimite.

Da. Postavite Wi-Fi proxy uređaja na IP i port uređaja za snimanje, a zatim instalirajte JMeter certifikat na uređaju. Aplikacije koje koriste prikvačivanje certifikata i dalje se ne mogu snimiti.

Ne. Grafičko sučelje služi za izgradnju i ispravljanje pogrešaka. Pokrenite stvarni test u načinu rada naredbenog retka, koji koristi puno manje memorije i na kraju generira HTML izvješće.

Planovi testiranja spremaju se kao .jmx, XML format koji dobro funkcionira u kontroli verzija. Rezultati se zapisuju kao .jtl, koji je prema zadanim postavkama CSV i može se pohraniti i kao XML.

Sažmite ovu objavu uz: