Redovi i JMeter: dijeljenje s izdavačem i pretplatnikom
Zdravo, Habr! Ovo je moj nastavak prethodna publikacija, u kojem ću govoriti o opcijama za postavljanje poruka u redove pomoću JMeter-a.
Pravimo sabirnicu podataka za veliku federalnu kompaniju. Različiti formati zahtjeva, transformacije, zamršeno rutiranje. Za testiranje, morate poslati mnogo poruka u red čekanja. Ručno je bol s kojom se ne može nositi svaki kiropraktičar.
Uvod
Iako sam u početku morao da trpim ovaj bol. Sve je počelo sa RFHUtil-om. Moćno, ali nezgodno i zastrašujuće: Pa, znaš Rusa.
Neophodan u nekim slučajevima, ali u stalnom opadanju u slučaju aktivne upotrebe.
Sa njim je nemoguće praktično testiranje.
Sa JMeter-om sve je postalo lakše. Nakon prve faze savladavanja i navikavanja, počela je da sijeva nada za srećno testiranje.
Aktivno koristim uzorke JMS Publisher i JMS Subscriber. Za razliku od JMS Point-to-Point, ovaj par se činio praktičnijim za korištenje. Na primjer, sa Subscriber u JMS Selectoru možete specificirati varijablu, ali sa Point-to-Point ne možete (ili ovaj metod nije baš očigledan).
Priprema uzoraka
JMS Publisher
Postavljanje - svaki uzorak. Apache preporučuje koristite ovu opciju ako su redovi/teme specificirani putem varijabli.
Istek (ms) = 120000. U slučaju neuspjeha, zahtjevi za testiranje će nestati iz reda nakon 2 minute.
Koristiti netrajni način isporuke? - istinito. IBM odobravataj trajni način rada osigurava pouzdano očuvanje poslanih poruka u slučaju iznenadnog kvara. I brža razmjena u netrajnom načinu rada. Za potrebe testiranja, brzina je važnija.
U svakom izdavaču postavljam jms svojstvo koje će pretplatnik koristiti u JMS selektoru. Za svaku podnošenje, slučajna vrijednost se generira u elementu plana testiranja korisničkih parametara:
Na ovaj način možete biti sigurni da je ispravna poruka pročitana.
Timeout (ms) = 100000. Ako zahtjev ne stigne u red nakon 100 sekundi čekanja, onda je nešto pošlo po zlu.
Zaustaviti se između uzoraka? - istinito.
JMS Selector - prilično zgodan stvar. Konačni JMS pretplatnik:
Kako postupati sa ćiriličnim pismom u poslanim porukama. U JMeter-u se po defaultu, nakon korekture, prikazuje krivo. Da biste to izbjegli i uživali u velikom i moćnom uvijek i svugdje, trebate:
Dodajte JVM argument u JMeter “pokretač”:
-Dfile.encoding=UTF-8
Dodajte JSR223 postprocesor pretplatniku s groovy linijom:
prev.setDataEncoding("UTF-8")
Pošalji tekst
Najlijenija opcija. Pogodno za otklanjanje grešaka u sveže napisanim testovima. Ili za slučajeve kada trebate poslati barem nešto malo. Odaberite opciju Izvor poruke - Textarea i stavite tijelo poruke u tekstualni blok:
Prijenos datoteke
Najčešća opcija. Pogodno za većinu scenarija. Odaberite opciju Izvor poruke - Iz datoteke i naznačite putanju do poruke u polju Datoteka - Ime datoteke:
Prebacivanje datoteke u tekstualno polje
Najsvestranija opcija. Pogodno za većinu scenarija + može se koristiti u JMS Point-to-Point gdje ne postoji druga opcija slanja:
Prenošenje niza bajtova
Najteža opcija. Pogodno za provjeru nepogrešivo preciznog prijenosa zahtjeva do bajta, bez izobličenja, SMS-a i perturbacija. Nećete moći ovo da uradite u podrazumevanom JMeter-u. ovdje Definitivno mi je rečeno za ovo.
Tako da sam morao da preuzmem izvori i modificirati kod JMS Subscriber.
Zamijenjeno u metodi extractContent(..) linija:
buffer.append(bytesMessage.getBodyLength() + " bytes received in BytesMessage");
Opisao sam četiri načina slanja poruka u redove, koje svakodnevno koristim u praksi. Nadam se da će vam ove informacije olakšati život. U nastavku, planiram da govorim o svom iskustvu testiranja razmene gde je red na jednom kraju i baza podataka ili sistem datoteka na drugom.