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.

Testige ainult süsteeme, mis kuuluvad teile või mille hindamiseks teil on selgesõnaline volitus. Salvestised võivad sisaldada paroole, küpsiseid, märke ja isikuandmeid. Eelistage testimiskontosid, eemaldage enne JMX-failide jagamist salakoodid ja pidage kinni kinnitatud laadimispiirangutest.

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

  1. Skriptide loomiseks käivitage JMeter graafilise kasutajaliidese režiimis.
  2. Lisage testimisplaanile lõimerühm.
  3. Lisage lõimerühma alla salvestuskontroller.
  4. Lisage vajadusel HTTP-päringute vaikesätted ja HTTP-küpsiste haldur.
  5. Lisage HTTP(S) testskripti salvestaja ja valige selle sihtmärgiks salvestuskontroller.
  6. Kasutage kaasamis-/välistamismustreid, et piirata mitteseotud liiklust.

Ametlik Apache JMeteri salvestusjuhend on autoriteetne versioonispetsiifiline teatmik.

Kasutage puhast brauseriprofiili: Laiendused, sünkroonimine, telemeetria ja omavahel mitteseotud vahekaardid tekitavad lärmakaid päringuid.

Samm 1) HTTP-puhverserveri seadistamine

Salvesti: vali kasutamata kohalik port, näiteks 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

  1. Käivitage salvesti ja usaldage selle ajutist sertifikaati ainult isoleeritud testbrauseris.
  2. Ava volitatud testimiskeskkond.
  3. Soorita üks puhas teekond inimkiirusel.
  4. Lõpetage salvestamine kohe pärast viimast äritoimingut.
  5. 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.

Ärge käivitage graafilisest kasutajaliidesest tõsist koormust. GUI-kuulajad tarbivad mälu ja võivad tulemusi moonutada.

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.

  1. Käivitage HTTP(S) testskripti salvestaja.
  2. Leidke loodud ApacheJMeterTemporaryRootCA sertifikaat.
  3. Importige see usaldusväärse asutusena isoleeritud profiilis.
  4. Salvesta kinnitatud HTTPS-teekond.
  5. 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.

  1. Leidke vastus, mis sisaldab esimesena dünaamilist väärtust.
  2. Lisa JSON-, CSS-, XPath- või regulaaravaldiste ekstraktor.
  3. Salvesta tulemus nimega JMeter muutujasse.
  4. Asenda hilisemad püsikodeeritud väärtused muutuja viitega.
  5. 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

ProbleemTõenäoline põhjusMäärama
Ühtegi taotlust pole registreeritudVale puhverserver, peatatud salvesti, pordi konflikt või möödaviigureegelKinnitage host ja port, käivitage salvesti ja eemaldage sihtmärkide väljajätmised.
HTTPS-hoiatusAjutine CA puudub või on aegunudGenereerige uus salvestussertifikaat ja importige see ainult testprofiili.
Liiga palju liiklustLaiendused, telemeetria, muud vahekaardid või üldised mustridKasutage puhast profiili ja täpsustage kaasamis-/välistamisfiltreid.
Sisselogimise kordus ebaõnnestusPuuduvad küpsised, märgid, OAuthi voog või korrelatsioonLisa küpsiste haldur, ekstraheeri dünaamilised väärtused ja kontrolli ümbersuunamisi.
Pärast seda brauser võrguühendusetaSee viitab endiselt peatatud kohalikule puhverserverileTaasta automaatsed või puhverserverita sätted.
JMeteri mälu vigaGUI-kuulajad või suur vastuste salvestusruumKasutage mitte-GUI režiimi ja piirake salvestatud vastuseandmeid.
Erinevalt brauseristJMeter ei renderda ega käivita lehe JavaScriptiTesti 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.