ProHoster > Blog > podávání > Fronty a JMeter: sdílení s vydavatelem a předplatitelem
Fronty a JMeter: sdílení s vydavatelem a předplatitelem
Dobrý den, Habr! Toto je moje pokračování předchozí publikace, ve kterém budu hovořit o možnostech umístění zpráv do front pomocí JMeter.
Vyrábíme datovou sběrnici pro velkou federální společnost. Různé formáty požadavků, transformace, složité směrování. Pro testování je potřeba poslat do fronty hodně zpráv. Ručně je bolest, kterou ne každý chiropraktik zvládne.
úvod
I když jsem tu bolest zpočátku musel snášet. Všechno to začalo s RFHUtil. Mocné, ale trapné a děsivé: No, znáš Rus.
V některých případech nepostradatelný, ale v případě aktivního používání neustále klesá.
Pohodlné testování s ním není možné.
S JMeter je vše jednodušší. Po první fázi osvojování a zvykání začala svítat naděje na šťastné testování.
Aktivně používám samplery JMS Publisher a JMS Subscriber. Na rozdíl od JMS Point-to-Point se tato dvojice zdála pohodlnější k použití. Například s Subscriber v JMS Selector můžete zadat proměnnou, ale s Point-to-Point nemůžete (nebo tato metoda není příliš zřejmá).
Příprava vzorkovačů
Vydavatel JMS
Nastavení - každý vzorek. Apache doporučuje použijte tuto volbu, pokud jsou fronty/témata zadány pomocí proměnných.
Vypršení platnosti (ms) = 120000. V případě selhání testovací požadavky zmizí z fronty po 2 minutách.
Použít netrvalý režim doručování? - skutečný. IBM schvaluježe trvalý režim zajišťuje spolehlivé uchování přenášených zpráv v případě náhlého selhání. A rychlejší výměna v neperzistentním režimu. Pro účely testování je důležitější rychlost.
V každém vydavateli nastavím vlastnost jms, kterou bude odběratel používat v selektoru JMS. Pro každé odeslání je v prvku plánu testování uživatelských parametrů vygenerována náhodná hodnota:
Tímto způsobem si můžete být jisti, že je přečtena správná zpráva.
Poslední „prázdné místo“ předkonfigurovaného JMS Publisher:
Předplatitel JMS
Nastavení - každý vzorek. No, rozumíš.
Timeout (ms) = 100000. Pokud požadavek nedorazí do fronty po 100 sekundách čekání, pak se něco pokazilo.
Jak zacházet s azbukou v přenášených zprávách. V JMeter se standardně po korektuře zobrazuje křivě. Chcete-li se tomu vyhnout a užít si skvělé a mocné vždy a všude, musíte:
Přidejte argument JVM do „spouštěče“ JMeter:
-Dfile.encoding=UTF-8
Přidejte JSR223 PostProcessor do Subscriber s groovy linkou:
prev.setDataEncoding("UTF-8")
Poslat zprávu
Nejlínější varianta. Vhodné pro ladění čerstvě napsaných testů. Nebo pro případy, kdy potřebujete poslat alespoň něco malého. Vyberte možnost Zdroj zprávy - Textarea a umístěte tělo zprávy do textového bloku:
Přenos souborů
Nejběžnější možnost. Vhodné pro většinu scénářů. Vyberte možnost Zdroj zprávy - Ze souboru a v poli označte cestu ke zprávě Soubor – název souboru:
Přenos souboru do textového pole
Nejuniverzálnější možnost. Vhodné pro většinu scénářů + lze použít v JMS Point-to-Point, kde není možnost druhého odeslání:
Předávání bajtového pole
Nejtěžší varianta. Vhodné pro kontrolu neomylně přesného přenosu požadavků až na byte, bez zkreslení, SMS a rušení. Ve výchozím JMeter to nebudete moci udělat. zde Určitě mi o tom bylo řečeno.
Musel jsem tedy stáhnout Zdroje a upravit kód Předplatitel JMS.
Nahrazeno v metodě extractContent(..) čára:
buffer.append(bytesMessage.getBodyLength() + " bytes received in BytesMessage");
Popsal jsem čtyři způsoby odesílání zpráv do front, které používám každý den v praxi. Doufám, že vám tyto informace usnadní život. V pokračování plánuji mluvit o svých zkušenostech s testováním výměny, kde je na jednom konci fronta a na druhém databáze nebo souborový systém.