HTTP-proxyserver i JMeter: Optag eksempel script
โก Smart opsummering
JMeter HTTP-proxyserveren registrerer browseraktivitet i et genanvendeligt testscript. Optageren placeres mellem browser og websted, registrerer hver anmodning i en optagelsescontroller, og den gemte plan afspilles af mange virtuelle brugere.

Hvad er det JMeter HTTP-proxyserver?
JMeter HTTP Proxy Server er en indbygget optager, der placeres mellem browseren og det websted, der testes. Den overvรฅger og registrerer brugeraktivitet, mens applikationen browser normalt, og omdanner hver registreret anmodning til en HTTP-forespรธrgselssampler i testplanen. JMeter 3.0 elementet har fรฅet navnet HTTP(S) testscriptoptager, og begge navne beskriver den samme komponent.
Optage test hjรฆlper en tester med at optage og afspille aktivitet mod et testmรฅl. Det er en type automatiseret testning, men for flere brugere pรฅ รฉn gang.
Hvorfor optage i stedet for at bygge manuskriptet i hรฅnden?
En realistisk brugerrejse pรฅ et moderne websted producerer snesevis af anmodninger, hver med sine egne headere, cookies og formularparametre. Typing Alt dette manuelt indarbejdes i samplere, hvilket er langsomt og fejlbehรฆftet. Optagelsen registrerer den prรฆcise trafik, som browseren sendte, hvilket giver tre fordele:
- Nรธjagtighed: Headerrรฆkkefรธlge, cookies og skjulte formularfelter registreres prรฆcis, som serveren modtog dem.
- Hastighed: En rejse pรฅ ti sider tager minutter at registrere og timer at skrive manuelt.
- Dรฆkning: AJAX-kald i baggrunden, der er usynlige i brugerfladen, vises stadig i optagelsen.
Optagelsen er et udgangspunkt snarere end en fรฆrdig test. Den skal stadig renses, korreleres og parametriseres, fรธr den kan bruges til belastningstestAfsnittene nedenfor dรฆkker hele stien fra en tom JMeter vindue til et script, der afspilles pรฅlideligt.
Her er den kรธreplan af dette praktiske eksempel
Sรฅdan optager du et script i JMeter 5.x
Den nuvรฆrende udgivelse er Apache JMeter 5.6.3, offentliggjort den 9. januar 2024, og det krรฆver Java 8 eller senere, med Java 17 anbefales. Enhver, der fรธlger den illustrerede gennemgang lรฆngere nede pรฅ denne side om den udgivelse, vil ikke finde en WorkBench-node, fordi den blev fjernet i version 5.0. Funktionaliteten forsvandt ikke; den blev flyttet. Optageren er nu tilfรธjet direkte til testplanen og kaldes HTTP(S) Test Script Recorder.
Den hurtigste rute er den medfรธlgende skabelon. Vรฆlg File (Felt) > Skabeloner > Indspilning og JMeter genererer en komplet plan, der indeholder en trรฅdgruppe, HTTP-anmodningsstandarder, en optagelsescontroller og selve optageren, som allerede er forbundet. Opbygning af den samme struktur i hรฅnden sker pรฅ fรธlgende mรฅde.
- Byg planskelettet. Tilfรธj en trรฅdgruppe, og tilfรธj derefter en optagelsescontroller under den. Det er her, optagede samplere lander.
- Tilfรธj optageren til testplanen. Hรธjreklik pรฅ noden Testplan, og vรฆlg Tilfรธj > Ikke-testelementer > HTTP(S) testscriptoptagerDet er en sรธskende af trรฅdgruppen, ikke en undergruppe.
- Indstil porten. Standardindstillingen er 8888. Enhver ledig port fungerer, forudsat at browseren er konfigureret til at matche.
- Vรฆlg den Target Controller. Vรฆlg den optagelsescontroller, der blev oprettet i trin et, sรฅ anmodninger grupperes, hvor du forventer, i stedet for spredt ved planroden.
- Tilfรธj URL udelukkelsesmรธnstre. Pรฅ fanen Anmodningsfiltrering skal du ekskludere statiske ressourcer med et mรธnster som f.eks. .*\.(bmp|css|js|gif|ico|jpe?g|png|svg|woff2?)Dette fjerner det meste af den manuelle oprydning, der beskrives senere.
- Start optageren. Klik Starten รธverst pรฅ optagerpanelet. JMeter skriver ApacheJMeterTemporaryRootCA.crt i sin bin-mappe pรฅ nuvรฆrende tidspunkt, hvilket gรธr HTTPS-optagelse mulig.
- Ret browseren mod proxyen ved hjรฆlp af localhost og den valgte port, og naviger derefter normalt i applikationen.
- Stop op og rydd op. Tryk pรฅ Stop, slet eventuelle resterende tredjepartsopkald, og gem planen.
- Valider fรธr skalering. Hรธjreklik pรฅ trรฅdgruppen og vรฆlg GodkendDette kรธrer planen รฉn gang med en enkelt trรฅd, sรฅ fejl opstรฅr, fรธr der pรฅfรธres nogen belastning.
Endnu en vane adskiller et fungerende script fra et pรฅlideligt. Brug kun den grafiske brugerflade til opbygning og fejlfinding, og kรธr derefter den rigtige test fra kommandolinjen med jmeter -n -t plan.jmx -l resultater.jtl -e -o rapport, som ogsรฅ genererer et HTML-dashboard. Den samme kommando er grundlaget for distribueret testning pรฅ tvรฆrs af flere lastgeneratorer. Installationen er dรฆkket i JMeter installationsvejledning, og den fulde procedure er dokumenteret pรฅ Apache JMeter optagerside.
โ ๏ธ Versionsnotat: Skรฆrmbillederne i gennemgangen nedenfor blev optaget pรฅ en รฆldre JMeter udgivelse, der stadig havde WorkBench-noden. WorkBench blev fjernet i JMeter 5.0. Alle koncepter gรฆlder stadig; kun placeringen af โโoptageren รฆndres, og den nuvรฆrende procedure er den, der er angivet ovenfor.
Trin 1) Indstilling af HTTP Proxy-serveren
Dette er en trin-for-trin guide til opsรฆtning af proxy
- Starten JMeter
- Type Testplan pรฅ trรฆet
- Tilfรธj TrรฅdgruppeHรธjreklik pรฅ Testplan og tilfรธj en ny trรฅdgruppe: Tilfรธj > Trรฅde (brugere) > Trรฅdgruppe
- Tilfรธj HTTP-anmodningVรฆlg trรฅdgruppen; hรธjreklik Tilfรธj > Konfigurationselement > HTTP-anmodningsstandarder
I det nye HTTP Request Defaults-element: Indtast "google.com" i Servernavn eller IP. Du skal holde de andre felter tomme
- Tilfรธj OptagelsescontrollerHรธjreklik pรฅ "Trรฅdgruppe" og tilfรธj en optagelsescontroller: Tilfรธj > Logisk controller > Optagelsescontroller
- Tilfรธj proxy-server til WorkBench. Hรธjreklik pรฅ Workbench og tilfรธj http-proxyen: Tilfรธj > Ikke-testelementer > HTTP-proxyserver. Pรฅ JMeter 5.x, hรธjreklik pรฅ Testplan node i stedet og vรฆlg HTTP(S) testscriptoptager.
- sรฆt Target controller hvor dine optagede scripts vil blive tilfรธjet
- Starten Proxyserver. Gรฅ tilbage til HTTP-proxyserver, og klik pรฅ Starten knappen i bunden. Nu din JMeter proxy server start
- Start din browser (jeg brugte Firefox), vรฆlg Vรฆrktรธj > Option > Avanceret > Netvรฆrk > Lokal omrรฅde > Indtast HTTP-proxy som vist nedenfor. I nuvรฆrende Firefox frigiver den samme dialog nรฅs gennem Indstillinger > Generelt > Netvรฆrksindstillinger.
Trin 2) Registrer din aktivitet
- Start nu http://www.google.com i din webbrowser (JMeter stadig รฅben)
- Sรธger aktiviteter efter sรธgeordet "guru 99".
- Back to JMeter, i HTTP Proxy Server, klik Stands nรฅr fรฆrdig
- Nรฅr du er fรฆrdig med at optage, vil du se JMeter oprettede automatisk en ny HTTP-anmodning som vist i figuren nedenfor
JMeter har allerede registreret en brugeranmodning til Hjemmesiden of Google internet side. http://www.google.com/
De andre HTTP-anmodninger vises i ovenstรฅende figur, du bรธr fjerne dem. Fordi engang JMeter registrerer ogsรฅ nogle reklamelinks, mens du sรธger efter sรธgeord pรฅ GoogleVi bรธr ignorere dem i vores testplan.
- Klik pรฅ Filer > Gem din testplan som
- Der vises en dialogboks > indtast et navn pรฅ din testplan i feltet Filnavn > klik pรฅ Gem. Nu er din testplan gemt under navnet RecordingTestPlan.jmx
Trin 3) Kรธr din testplan
- Type Trรฅdgruppe > Tilfรธj > Lytter > Oversigtsrapport
- Den sammenfattende rapport vil vise nogle grundlรฆggende statik
- Vรฆlg trรฅdgruppe, indtast oplysninger som figuren nedenfor
Du kan henvise til artiklen JMeter Test af ydeevne for at fรฅ flere oplysninger om konfiguration af trรฅdgrupper.
- Fรธr du starter testen, skal du vรฆlge "Oversigtsrapport". Nรฅr du er klar til at kรธre en test, skal du vรฆlge Kรธr > Start (Ctrl+R). JMeter vil afspille din aktivitet 100 gange. Statistikken vil รฆndre sig, mens testen kรธrer, indtil den er fรฆrdig.
Trin 4) Gem dit testresultat
- Klik Gem tabeldata for at gemme testresultatet i filen
- Indtast navnet pรฅ testresultatet, og klik pรฅ Gem. Testresultat i JMeter gemmes i *.csv-format som standard
Download filoptagelsestestplanen
Download filen HTTP-proxyserver
Optagelse af HTTPS-trafik og -certifikater
Nรฆsten alle websteder bruger nu HTTPS, hvilket den oprindelige gennemgang er รฆldre end. En proxy kan ikke lรฆse krypteret trafik, medmindre browseren har tillid til den, sรฅ et ekstra trin er pรฅkrรฆvet.
Nรฅr optageren starter, JMeter genererer et midlertidigt rodcertifikat med navnet ApacheJMeterMidlertidigRootCA.crt i dens bin-mappe. Importer filen til browseren som en betroet certifikatmyndighed, og genstart derefter browseren. JMeter kan nu prรฆsentere sit eget certifikat for hvert websted og dekryptere sessionen til optagelse.
Tre punkter er vรฆrd at vide:
- Certifikatet udlรธber efter syv dage. Dette er bevidst. Slet det og lad det JMeter regenerere en frisk i stedet for at forlรฆnge gyldigheden.
- Fjern den, nรฅr du er fรฆrdig. At lade et betroet rodcertifikat vรฆre installeret pรฅ en fungerende maskine er en reel sikkerhedsrisiko, ikke en teoretisk en.
- Nogle applikationer afviser det. Websteder, der bruger certifikatfastgรธrelse eller gensidig TLS, kan slet ikke optages via en proxy, og scriptet skal i stedet bygges manuelt fra browserudviklervรฆrktรธjer.
Korrelation: Gรธr et optaget manuskript genafspilbart
Et optaget script gengiver prรฆcis, hvad der skete รฉn gang, hvilket sjรฆldent sker anden gang. Sessionsidentifikatorer, tokens og genererede nรธgler, der registreres under optagelse, er dรธde vรฆrdier, nรฅr scriptet afspilles igen, og kรธrslen fejler pรฅ mรฅder, der ligner programfejl.
Korrelation er lรธsningen. efterbehandlingsenhed sรฅsom det regulรฆre udtryk f.eks.tractor eller JSON Extractor indfanger den nye vรฆrdi fra login-svaret, gemmer den i en variabel og refererer senere til den variabel i stedet for den optagede literal.
Arbejdsgangen er kort:
- Afspil scriptet รฉn gang igen med en View Results Tree-lytter, og find den fรธrste mislykkede anmodning.
- Sammenlign den fejlende anmodning med optagelsen. Enhver vรฆrdi, der afviger mellem to kรธrsler, skal korreleres.
- Tilfรธj en ekstractor til det svar, der producerede vรฆrdien, og erstat derefter den hardkodede literal med den variable reference.
- Tilfรธj en pรฅstand sรฅ en side, der returnerer HTTP 200 med en fejlmeddelelse, dumper stadig testen.
Fรธrst efter korrelation er det sikkert at skalere scriptet op. Kรธrsel af en ukorreleret optagelse pรฅ hundrede brugere mรฅler fejlhรฅndtering snarere end ydeevneYderligere elementer er dรฆkket pรฅ tvรฆrs af JMeter tutorials.
Fejlfinding
Hvis du stรธder pรฅ et problem under udfรธrelsen af โโovenstรฅende scenarie, skal du gรธre fรธlgende:
- Kontroller, om du opretter forbindelse til internettet via en proxy. Hvis ja, fjern proxyen.
- ร bn en ny forekomst af JMeter.
- ร bn RecordingTestPlan.jmx i JMeter.
- Hรธjreklik pรฅ Workbench > Merge > Vรฆlg HTTP Proxy Server.jmx. Til JMeter 5.x, flettes i stedet ind i Testplan-noden, da WorkBench ikke lรฆngere findes.
- Klik pรฅ Trรฅdgruppe > Oversigtsrapport.
- Kรธr testen.
To yderligere symptomer forklarer de fleste resterende fejl. Hvis browseren rapporterer, at den ikke kan oprette forbindelse, blev optageren aldrig startet, eller den port, der er angivet i browseren, stemmer ikke overens med den port, der er angivet i JMeterHvis siderne indlรฆses normalt, men der ikke vises noget i trรฆet, er trafikken HTTPS, og certifikatet er ikke blevet importeret.



















