HTTP proxy server v JMeter: Záznam příkladu skriptu
⚡ Chytré shrnutí
JMeter HTTP proxy server zaznamenává aktivitu prohlížeče do opakovaně použitelného testovacího skriptu. Záznamník se nachází mezi prohlížečem a webovou stránkou, zachycuje každý požadavek do řadiče záznamu a uložený plán je přehráván mnoha virtuálními uživateli.

Co je JMeter HTTP proxy server?
Jedno JMeter HTTP Proxy Server je vestavěný záznamník, který se nachází mezi prohlížečem a testovanou webovou stránkou. Sleduje a zaznamenává aktivitu uživatelů během běžného prohlížení aplikace a v rámci testovacího plánu převádí každý zachycený požadavek na vzorkovač HTTP požadavků. JMeter 3.0 byl prvek pojmenován Záznamník testovacích skriptů HTTP(S)a oba názvy popisují stejnou součást.
Záznam Testování pomáhá testerovi zaznamenávat a přehrávat aktivitu s testovacím cílem. Jedná se o typ automatizovaného testování, ale pro více uživatelů najednou.
Proč nahrávat scénář, místo aby ho psali ručně?
Realistická uživatelská cesta na moderním webu produkuje desítky požadavků, z nichž každý má své vlastní záhlaví, soubory cookie a parametry formuláře.ping Ruční vkládání všech těchto dat do samplerů je pomalé a náchylné k chybám. Nahrávání zachycuje přesně ten provoz, který prohlížeč odeslal, což má tři výhody:
- Přesnost: Pořadí záhlaví, soubory cookie a skrytá pole formuláře jsou zaznamenávány přesně tak, jak je server obdržel.
- Rychlost: Zaznamenání desetistránkové cesty trvá několik minut a ruční psaní celé hodiny.
- Krytí: Volání AJAX na pozadí, která jsou v rozhraní neviditelná, se v nahrávce stále zobrazují.
Záznam je spíše výchozím bodem než hotovým testem. Před použitím je stále třeba jej vyčistit, korelovat a parametrizovat. zátěžové testováníNíže uvedené části pokrývají celou cestu od prázdného JMeter okno do skriptu, který se spolehlivě přehrává.
Zde je plán tohoto praktického příkladu
Jak nahrát skript v JMeter 5.x
Aktuální vydání je Apache JMeter 5.6.3, publikované 9. ledna 2024, a vyžaduje Java 8 nebo novější, s Java 17 doporučeno. Kdokoli, kdo bude postupovat podle ilustrovaného návodu dále na této stránce k dané verzi, nenajde uzel WorkBench, protože byl ve verzi 5.0 odstraněn. Funkce nezmizela, ale přesunula se. Záznamník je nyní přidán přímo do testovacího plánu a nazývá se Záznamník testovacích skriptů HTTP(S).
Nejrychlejší cesta je pomocí přiložené šablony. Vyberte Soubor > Šablony > Záznam a JMeter generuje kompletní plán obsahující skupinu vláken, výchozí hodnoty HTTP požadavků, řadič nahrávání a samotný rekordér, které jsou již propojeny. Ruční sestavení stejné struktury zahrnuje následující kroky.
- Sestavte kostru plánu. Přidejte skupinu vláken a poté pod ni přidejte ovladač nahrávání. Zde se budou zobrazovat zachycené samplery.
- Přidejte záznamník do testovacího plánu. Klikněte pravým tlačítkem myši na uzel Testovací plán a vyberte přidat > Netestovací prvky > Záznamník testovacích skriptů HTTP(S)Je to sourozenec skupiny vláken, nikoli dítě.
- Nastavte port. Výchozí hodnota je 8888. Funguje jakýkoli volný port, pokud je prohlížeč nakonfigurován tak, aby odpovídal.
- Vyberte Target Regulátor. Vyberte řadič nahrávání vytvořený v prvním kroku, aby se požadavky seskupily tam, kde očekáváte, a ne rozptýlily se v kořenovém adresáři plánu.
- přidat URL vzory vyloučení. Na kartě Filtrování požadavků vyloučte statické zdroje pomocí vzoru, například .*\.(bmp|css|js|gif|ico|jpe?g|png|svg|woff2?)Tím se odstraní většina ručního čištění popsaného později.
- Spusťte rekordér. klikněte Home v horní části panelu rekordéru. JMeter píše ApacheJMeterSoubor TemporaryRootCA.crt v tuto chvíli uložte do složky bin, což umožňuje nahrávání HTTPS.
- Namiřte prohlížeč na proxy server pomocí localhost a zvoleného portu a poté se v aplikaci normálně pohybujte.
- Zastavte se a ukliďte. Stiskněte Stop, smažte všechny zbývající hovory od třetích stran a uložte tarif.
- Před škálováním ověřte. Klikněte pravým tlačítkem myši na skupinu vláken a vyberte potvrditToto spustí plán jednou s jedním vláknem, takže selhání se projeví předtím, než je aplikováno jakékoli zatížení.
Ještě jeden zvyk odlišuje funkční skript od spolehlivého. Grafické rozhraní používejte pouze pro sestavování a ladění a skutečný test spusťte z příkazového řádku pomocí jmeter -n -t plan.jmx -l results.jtl -e -o report, který také generuje HTML dashboard. Stejný příkaz je základem distribuované testování přes několik generátorů zátěže. Instalace je popsána v JMeter průvodce instalacía celý postup je zdokumentován na Apache JMeter stránka rekordéru.
⚠️ Poznámka k verzi: Snímky obrazovky v níže uvedeném návodu byly pořízeny na starším zařízení. JMeter verze, která stále obsahovala uzel WorkBench. WorkBench byl odstraněn v roce JMeter 5.0. Všechny koncepty stále platí; mění se pouze umístění záznamníku a aktuální postup je ten, který je uveden výše.
Krok 1) Nastavení HTTP proxy serveru
Toto je krok za krokem průvodce nastavením proxy
- Home JMeter
- vybrat Testovací plán na stromě
- přidat Skupina vlákenKlikněte pravým tlačítkem myši na Testovací plán a přidat novou skupinu vláken: přidat > Vlákna (uživatelé) > Skupina vláken
- přidat HTTP požadavekVyberte skupinu vláken; klikněte pravým tlačítkem myši přidat > Konfigurační prvek > Výchozí nastavení požadavku HTTP
V novém prvku Výchozí nastavení požadavku HTTP: Do pole Název serveru nebo IP zadejte „google.com“. Ostatní pole byste měli nechat prázdná
- přidat Ovladač nahráváníKlikněte pravým tlačítkem myši na „Skupinu vláken“ a přidejte řadič nahrávání: přidat > Logický ovladač > Ovladač nahrávání
- přidat Proxy server do WorkBenchu. Klikněte pravým tlačítkem myši na Workbench a přidejte http proxy: přidat > Netestovací prvky > HTTP proxy server, Na JMeter 5.x, klikněte pravým tlačítkem myši na Testovací plán uzel místo toho a zvolte Záznamník testovacích skriptů HTTP(S).
- sada Target kontrolor kam budou přidány vaše nahrané skripty
- Home Proxy server. Vraťte se na HTTP Proxy server a klikněte na Home tlačítko ve spodní části. Nyní vaše JMeter spuštění proxy serveru
- Spusťte prohlížeč (použil jsem Firefox), Vybrat Nástroj > Volba > pokročilý > Síť > nastavení > Zadejte HTTP proxy, jak je uvedeno na obrázku níže. V aktuálním Firefox uvolní stejný dialog, je dosaženo prostřednictvím Nastavení > obecně > Nastavení sítě.
Krok 2) Zaznamenejte svou aktivitu
- Nyní spustit http://www.google.com ve vašem webovém prohlížeči (JMeter stále otevřeno)
- Vyhledávejte aktivity klíčové slovo „guru99".
- Zpět na JMeter, v HTTP Proxy Server klepněte na Stop po dokončení
- Po dokončení nahrávání uvidíte JMeter automaticky vytvořil nový požadavek HTTP jako na obrázku níže
JMeter již zaznamenal požadavek uživatele na domovskou stránku of Google webová stránka. http://www.google.com/
Ostatní HTTP požadavky zobrazené na výše uvedeném obrázku, měli byste je odstranit. Protože někdy JMeter také zaznamenává některé reklamní odkazy, když vyhledáváte klíčová slova na GoogleV našem testovacím plánu bychom je měli ignorovat.
- Klikněte na Soubor > Uložit testovací plán jako
- Zobrazí se dialogové okno > do pole Název souboru zadejte název testovacího plánu > klikněte na Uložit. Váš testovací plán je nyní uložen pod názvem RecordingTestPlan.jmx.
Krok 3) Spusťte svůj testovací plán
- vybrat Skupina vláken > Přidat > Posluchač > Souhrnná zpráva
- Souhrnná zpráva zobrazí některé základní statiky
- Vyberte skupinu vláken a zadejte informace jako na obrázku níže
Můžete se odvolat na článek JMeter Testování výkonu dozvědět se podrobnosti o konfiguraci skupiny vláken.
- Před spuštěním testu vyberte možnost „Souhrnná zpráva“. Až budete připraveni spustit test, vyberte Spustit > Start (Ctrl+R). JMeter přehraje vaši aktivitu 100krát. Během testu se statistiky budou měnit, dokud nebude test dokončen.
Krok 4) Uložte výsledek testu
- klikněte Uložit data tabulky pro uložení výsledku testu do souboru
- Zadejte název výsledku testu a klikněte na Uložit. Výsledek testu v JMeter je standardně uložen ve formátu *.csv
Stáhněte si testovací plán nahrávání souborů
Stáhněte soubor HTTP proxy server
Zaznamenávání HTTPS provozu a certifikátů
Téměř každý web nyní používá HTTPS, což je starší verze původního návodu. Proxy server nemůže číst šifrovaný provoz, pokud mu prohlížeč nedůvěřuje, takže je nutný jeden krok navíc.
Když se spustí diktafon, JMeter generuje dočasný kořenový certifikát s názvem ApacheJMeterTemporaryRootCA.crt v jeho adresáři bin. Importujte tento soubor do prohlížeče jako důvěryhodnou certifikační autoritu a poté restartujte prohlížeč. JMeter nyní může pro každou stránku prezentovat vlastní certifikát a dešifrovat relaci pro nahrávání.
Za znát stojí tři body:
- Platnost certifikátu vyprší po sedmi dnech. Tohle je úmyslné. Smažte to a nechte to JMeter regenerovat nový, spíše než prodlužovat jeho platnost.
- Po dokončení jej odstraňte. Ponechání důvěryhodného kořenového certifikátu nainstalovaného na funkčním počítači představuje skutečné bezpečnostní riziko, nikoli teoretické.
- Některé aplikace to odmítají. Weby používající pinning certifikátů nebo vzájemné TLS nelze vůbec zaznamenávat přes proxy a skript je nutné místo toho vytvořit ručně z nástrojů pro vývojáře prohlížeče.
Korelace: Jak přehrát nahraný scénář
Nahraný skript reprodukuje přesně to, co se stalo jednou, což se podruhé stává jen zřídka. Identifikátory relací, tokeny a vygenerované klíče zachycené během nahrávání jsou v době, kdy je skript znovu přehrán, nefunkční a spuštění selže způsobem, který vypadá jako chyba aplikace.
Korelace je řešení. A postprocesor například regulární výraz Extractor nebo JSON ExtracTor zachytí čerstvou hodnotu z přihlašovací odpovědi, uloží ji do proměnné a pozdější požadavky odkazují na tuto proměnnou místo zaznamenaného literálu.
Pracovní postup je krátký:
- Přehrajte skript jednou s posluchačem View Results Tree a najděte první neúspěšný požadavek.
- Porovnejte neúspěšný požadavek se záznamem. Jakákoli hodnota, která se mezi dvěma spuštěními liší, musí být korelována.
- Přidat bývalého/bývaloutractor k odpovědi, která vygenerovala hodnotu, a poté nahraďte pevně zakódovaný literál odkazem na proměnnou.
- Přidat komentář tvrzení takže stránka vracející HTTP 200 s chybovou zprávou stále neprojde testem.
Teprve po korelaci je bezpečné škálovat skript. Spuštění nekorelovaného záznamu u stovky uživatelů měří spíše zpracování chyb než výkonDalší prvky jsou zahrnuty v celém JMeter tutoriály.
Odstraňování poruch
Pokud se při spuštění výše uvedeného scénáře setkáte s problémem, postupujte takto:
- Zkontrolujte, zda se připojujete k internetu přes proxy. Pokud ano, odeberte proxy.
- Otevřete novou instanci JMeter.
- Otevřete soubor RecordingTestPlan.jmx v JMeter.
- Klikněte pravým tlačítkem myši na Workbench > Merge > Vyberte HTTP Proxy Server.jmx. Zapnuto JMeter 5.x, sloučit do uzlu Test Plan, protože WorkBench již neexistuje.
- Klikněte na Skupina vláken > Souhrnná zpráva.
- Spusťte test.
Dva další příznaky jsou zodpovědné za většinu zbývajících selhání. Pokud prohlížeč hlásí, že se nemůže připojit, rekordér nebyl nikdy spuštěn nebo port nastavený v prohlížeči neodpovídá portu nastavenému v JMeterPokud se stránky načítají normálně, ale ve stromové struktuře se nic nezobrazuje, jde o HTTPS provoz a certifikát nebyl importován.



















