Fronty a JMeter: zdieľanie s vydavateľom a predplatiteľom
Ahoj Habr! Toto je pokračovanie môjho predchádzajúcej publikácii, v ktorej budem hovoriť o možnostiach umiestňovania správ do frontov pomocou JMeter.
Vyrábame dátovú zbernicu pre veľkú federálnu spoločnosť. Rôzne formáty požiadaviek, transformácie, zložité smerovanie. Na testovanie musíte do fronty poslať veľa správ. Manuálne je bolesť, ktorú nie každý chiropraktik zvládne.
Úvod
Aj keď som najprv musel znášať túto bolesť. Všetko to začalo s RFHUtil. Silný, ale trápny a desivý: No, poznáš Rusa.
V niektorých prípadoch nepostrádateľný, ale v prípade aktívneho používania neustále klesá.
Pohodlné testovanie je s ním nemožné.
S JMeter je všetko jednoduchšie. Po prvej fáze zvládnutia a zvyknutia začala svitať nádej na šťastné testovanie.
Aktívne používam samplery JMS Publisher a JMS Subscriber. Na rozdiel od JMS Point-to-Point sa tento pár zdal pohodlnejší na použitie. Napríklad s Subscriber v JMS Selector môžete zadať premennú, ale s Point-to-Point nie (alebo táto metóda nie je veľmi zrejmá).
Príprava vzorkovníkov
Vydavateľ JMS
Nastavenie - Každá vzorka. Apache odporúča použite túto voľbu, ak sú fronty/témy špecifikované prostredníctvom premenných.
Expirácia (ms) = 120000. V prípade zlyhania zmiznú požiadavky na test z frontu po 2 minútach.
Použiť režim trvalého doručovania? - pravda. IBM nárokyže trvalý režim zaisťuje spoľahlivé uchovanie prenášaných správ v prípade náhleho zlyhania. A rýchlejšia výmena v neperzistentnom režime. Pre účely testovania je dôležitejšia rýchlosť.
V každom vydavateľovi nastavím vlastnosť jms, ktorú bude predplatiteľ používať v selektore JMS. Pre každé odoslanie sa v prvku plánu testovania používateľských parametrov vygeneruje náhodná hodnota:
Takto si môžete byť istí, že je prečítaná správna správa.
Posledný „prázdny priestor“ vopred nakonfigurovaného vydavateľa JMS:
Predplatiteľ JMS
Nastavenie - Každá vzorka. No chápeš.
Časový limit (ms) = 100000 100. Ak požiadavka nepríde do frontu po XNUMX sekundách čakania, niečo sa pokazilo.
Zastaviť medzi vzorkami? - pravda.
JMS Selector - celkom pohodlné vec. Konečný predplatiteľ JMS:
Ako sa vysporiadať s azbukou v prenášaných správach. V JMeter sa štandardne po korektúre zobrazuje krivo. Aby ste sa tomu vyhli a užili si skvelé a mocné vždy a všade, musíte:
Pridajte argument JVM do „spúšťača“ JMeter:
-Dfile.encoding=UTF-8
Pridajte JSR223 PostProcessor k odberateľovi s drážkou:
prev.setDataEncoding("UTF-8")
Odoslať text
Najlenivejšia možnosť. Vhodné na ladenie čerstvo napísaných testov. Alebo pre prípady, keď potrebujete poslať aspoň niečo malé. Vyberte možnosť Zdroj správy - Textarea a umiestnite telo správy do textového bloku:
Prenos súborov
Najbežnejšia možnosť. Vhodné pre väčšinu scenárov. Vyberte možnosť Zdroj správy - Zo súboru a v poli uveďte cestu k správe Súbor – názov súboru:
Prenos súboru do textového poľa
Najuniverzálnejšia možnosť. Vhodné pre väčšinu scenárov + možno použiť v JMS Point-to-Point, kde nie je možnosť druhého odoslania:
Odovzdanie bajtového poľa
Najťažšia možnosť. Vhodné na kontrolu bezchybne presného prenosu požiadaviek až na bajt, bez skreslenia, SMS a rušenia. V predvolenom JMeter to nebudete môcť urobiť. tu Bolo mi o tom určite povedané.
Tak som musel stiahnuť zdrojov a upravovať kód Predplatiteľ JMS.
Nahradené v metóde extractContent(..) riadok:
buffer.append(bytesMessage.getBodyLength() + " bytes received in BytesMessage");
Popísal som štyri spôsoby odosielania správ do frontov, ktoré v praxi používam každý deň. Dúfam, že vám tieto informácie uľahčia život. V pokračovaní plánujem hovoriť o mojich skúsenostiach s testovaním výmeny, kde je na jednom konci front a na druhom databáza alebo súborový systém.