JMeter saab genereerida HTTP-päringute valimeid, toimides brauseri ja volitatud sihtrakenduse vahelise kohaliku salvestusproksi rollis. Praegused versioonid nimetavad seda komponenti HTTP(S) testiskripti salvestajaks . See salvestab ühe brauseri teekonna salvestuskontrollerisse, mille järel tuleb skript puhastada, korreleerida, valideerida ja protokolli tasemel testina käivitada.
Mis on JMeteri HTTP-proksiserver?
Salvesti kuulab tavaliselt kohalikku porti 8888Brauser saadab sellele puhverserverile HTTP- ja HTTPS-päringuid ning JMeter teisendab sobiva liikluse valitud kontrolleri all olevateks sämpliteks. Taasesituse ajal saadab JMeter päringuid otse; see ei käivita iga virtuaalse kasutaja jaoks brauserit.
Miks salvestada skripti käsitsi loomise asemel?
- Jäädvustab realistliku päringute järjekorra, ümbersuunamised, vormid ja tausta-API-d.
- Näitab XHR-i või toomise kõnesid, mida on lihtne kahe silma vahele jätta.
- Loob kiire baasjoone keeruka kasutajateekonna jaoks.
- Vähendab transkriptsioonivigu päistes ja parameetrites.
Väikese dokumenteeritud API puhul on käsitsi koostamine lihtsam. Salvestamine on abiks, kui brauseri võrgu käitumist veel ei mõisteta. Terminoloogia kohta vaadake meie puhverserveri tüüpide juhendit.
Kuidas salvestada skripti JMeter 5.x-is
- Skriptide loomiseks käivitage JMeter graafilise kasutajaliidese režiimis.
- Lisage testimisplaanile lõimerühm.
- Lisage lõimerühma alla salvestuskontroller.
- Lisage vajadusel HTTP-päringute vaikesätted ja HTTP-küpsiste haldur.
- Lisage HTTP(S) testskripti salvestaja ja valige selle sihtmärgiks salvestuskontroller.
- Kasutage kaasamis-/välistamismustreid, et piirata mitteseotud liiklust.
Ametlik Apache JMeteri salvestusjuhend on autoriteetne versioonispetsiifiline teatmik.
Samm 1) HTTP-puhverserveri seadistamine
8888, määrake sihtkontroller ja klõpsake Avaleht.Konfigureeri testbrauser HTTP ja HTTPS puhverserveri hostiga 127.0.0.1 ja sama port. Kui brauser töötab teises virtuaalmasinas või konteineris, viitab localhost sellele keskkonnale; kasutage selle asemel heakskiidetud ja ligipääsetavat privaatset aadressi.
Proxy host: 127.0.0.1
Proxy port: 8888
Include: https?://test.example.com/.*
Exclude: .*(.png|.jpg|.gif|.css|.woff2)(?.*)?$
Ära filtreeri esimesel läbimisel liiga agressiivselt, kuna rakenduse API võib kasutada mõnda muud alamdomeeni. Salvesta üks kord, kontrolli hoste ja seejärel täpsusta mustreid.
2. samm) Salvestage oma tegevus
- Käivitage salvesti ja usaldage selle ajutist sertifikaati ainult isoleeritud testbrauseris.
- Ava volitatud testimiskeskkond.
- Soorita üks puhas teekond inimkiirusel.
- Lõpetage salvestamine kohe pärast viimast äritoimingut.
- Taasta brauseri tavapärane puhverserveri säte.
Nimeta näidisfailid ümber äritegevuse ja grupiga seotud taotluste alusel tehingukontrollerites. Eemalda analüütika, reklaamid, brauseri värskendused, vestlusvidinad ja duplikaadid staatilised ressursid, välja arvatud juhul, kui need on otseselt ulatusse lisatud.
Kontrollige iga valimit saladuste osas. Paroolid peaksid pärinema kaitstud käitusaja andmetest, samas kui märkide muutmine nõuab korrelatsiooni.
Samm 3) Käivitage oma testiplaan
Enne laadimise lisamist valideeri üks kasutaja ja üks iteratsioon. Kasuta ajutiselt tulemuste puud, kontrolli ümbersuunamisi ja vastuse sisu ning lisa eeldatava äritulemuse jaoks väited. HTTP 200 üksi ei tõesta sisselogimise või väljaregistreerimise õnnestumist.
Threads: 1
Ramp-up: 1 second
Loop Count: 1
Pärast silumist eemaldage rasked kuulajad ja käivitage mitte-GUI:
jmeter -n -t recorded-test.jmx -l results.jtl -e -o html-report
Aruannete kataloog peab olema uus või tühi. Suurenda koormust järk-järgult ja jälgi nii sihtsüsteemi kui ka JMeterit.
4. samm) Salvestage testi tulemus
Salvesta korduvkasutatav plaan nimega .jmx faili ja hoia genereeritud andmeid eraldi:
- JMX: sämplerid, kontrollerid, väited, taimerid, muutujad ja konfiguratsioon.
- JTL: töötlemata proovi tulemused analüüsiks.
- HTML-i armatuurlaud: protsentiilid, läbilaskevõime, vead ja aktiivsed lõimed.
- Serveri mõõdikud: Protsessori, mälu, andmebaasi, järjekorra ja teenuse telemeetria.
Versioonige plaani mittesalajaste omaduste ja testiandmetega. Salvestage JMeteri ja Java versioonid, sihtjärk, keskkond, kasutajate arv, käivitamine ja kestus.
HTTPS-liikluse ja sertifikaatide salvestamine
HTTPS-i puhul genereerib JMeter ajutise sertifikaadiasutuse salvesti käivitamisel. Importige see ainult spetsiaalsesse testbrauserisse, salvestage volitatud sait ja seejärel eemaldage see.
- Käivitage HTTP(S) testskripti salvestaja.
- Leidke loodud ApacheJMeterTemporaryRootCA sertifikaat.
- Importige see usaldusväärse asutusena isoleeritud profiilis.
- Salvesta kinnitatud HTTPS-teekond.
- Pärast lõpetamist eemaldage sertifikaat.
Sertifikaatide kinnitamine, vastastikune TLS, hallatud brauserid, mobiilirakendused ja uuemad transpordiprotokollid võivad pealtkuulamist blokeerida. Ärge nõrgestage tootmiskeskkonna turvakontrolle. Kasutage etapiviisilist järku, API spetsifikatsiooni või heakskiidetud alternatiivset püüdmismeetodit.
Korrelatsioon: salvestatud skripti taasesitatavaks muutmine
Seansi ID-d, CSRF-tokenid, OAuthi olek, päringute allkirjad ja ressursi ID-d muutuvad päringute vahel. Korrelatsioon ekstraheerib ühest vastusest uue väärtuse ja asendab selle hilisemates päringutes.
- Leidke vastus, mis sisaldab esimesena dünaamilist väärtust.
- Lisa JSON-, CSS-, XPath- või regulaaravaldiste ekstraktor.
- Salvesta tulemus nimega JMeter muutujasse.
- Asenda hilisemad püsikodeeritud väärtused muutuja viitega.
- Ebaõnnestub selgelt, kui ekstraheerimine ei anna vastet.
JSON Extractor
Variable: csrfToken
JSON Path: $.csrf.token
Default: NOT_FOUND
Later header:
X-CSRF-Token: ${csrfToken}
Parameetriseerimine annab sõltumatuid kasutajaandmeid, sageli CSV-failist. Korrelatsioon jäädvustab serveri loodud andmeid täitmise ajal. Realistlikud plaanid vajavad tavaliselt mõlemat.
Probleemid
| Probleem | Tõenäoline põhjus | Määrama |
|---|---|---|
| Ühtegi taotlust pole registreeritud | Vale puhverserver, peatatud salvesti, pordi konflikt või möödaviigureegel | Kinnitage host ja port, käivitage salvesti ja eemaldage sihtmärkide väljajätmised. |
| HTTPS-hoiatus | Ajutine CA puudub või on aegunud | Genereerige uus salvestussertifikaat ja importige see ainult testprofiili. |
| Liiga palju liiklust | Laiendused, telemeetria, muud vahekaardid või üldised mustrid | Kasutage puhast profiili ja täpsustage kaasamis-/välistamisfiltreid. |
| Sisselogimise kordus ebaõnnestus | Puuduvad küpsised, märgid, OAuthi voog või korrelatsioon | Lisa küpsiste haldur, ekstraheeri dünaamilised väärtused ja kontrolli ümbersuunamisi. |
| Pärast seda brauser võrguühenduseta | See viitab endiselt peatatud kohalikule puhverserverile | Taasta automaatsed või puhverserverita sätted. |
| JMeteri mälu viga | GUI-kuulajad või suur vastuste salvestusruum | Kasutage mitte-GUI režiimi ja piirake salvestatud vastuseandmeid. |
| Erinevalt brauserist | JMeter ei renderda ega käivita lehe JavaScripti | Testi alusliideseid ja kasuta brauseri tööriistu renderdamismõõdikute jaoks. |
JMeter on protokolli jõudluse tööriist. See ei suuda mõõta visuaalseid sündmusi, näiteks suurimat sisulist värvimist (Suurim sisupainting), iseenesest.
KKK
Mis asendas JMeteris HTTP puhverserveri nime?
Komponendi nimi on nüüd HTTP(S) testskripti salvestaja.
Millist salvestusporti peaksin kasutama?
Kõik kasutamata kohalikud pordid töötavad. Port 8888 on tavaline ja brauser peab kasutama sama väärtust.
Kas JMeter saab HTTPS-liiklust salvestada?
Jah, kui isoleeritud testbrauser usaldab JMeteri ajutist salvestussertifikaati.
Miks salvestatud stsenaariumi taasesitus ebaõnnestub?
Dünaamilised märgid, küpsised, autentimisvood, hosti erinevused ja puuduvad andmed vajavad tavaliselt korrelatsiooni ja parameetrite määramist.
Kas JMeter saab Chrome'i salvestada?
Jah. Seadistage puhas Chrome'i profiil JMeteri kohaliku salvesti kasutamiseks.
Kas peaksin JMeteri graafilisest kasutajaliidesest koormusteste käivitama?
Ei. Ehitamine ja silumine GUI-režiimis, seejärel laadimine mitte-GUI-režiimis.
Kas JMeter käitub nagu päris brauser?
Ei. See saadab protokollipäringuid, aga ei renderda HTML-i ega käivita brauseri JavaScripti.
Kas tootmiskeskkonna sisselogimise salvestamine on ohutu?
Eelista testimis- ja proovikontosid. Tootmiskeskkonnas jäädvustamine nõuab selgesõnalist autoriseerimist ja ranget salajase käitlemise nõuet.
