ProHoster > Blog > uprava > Redovi čekanja i JMeter: dijeljenje s izdavačem i pretplatnikom
Redovi čekanja i JMeter: dijeljenje s izdavačem i pretplatnikom
Pozdrav, Habr! Ovo je nastavak mog prethodna objava, u kojem ću govoriti o opcijama za postavljanje poruka u redove pomoću JMetera.
Radimo podatkovnu sabirnicu za veliku saveznu tvrtku. Razni formati zahtjeva, transformacije, zamršeno usmjeravanje. Za testiranje morate poslati puno poruka u red čekanja. Ručno je bol s kojom se ne može nositi svaki kiropraktičar.
Uvod
Iako sam u početku morala trpjeti tu bol. Sve je počelo s RFHUtilom. Moćno, ali neugodno i strašno: Pa, znaš Rusa.
Nezamjenjiv u nekim slučajevima, ali stalno opada u slučaju aktivne uporabe.
Praktično testiranje je nemoguće s njim.
Uz JMeter sve je postalo lakše. Nakon prve faze svladavanja i privikavanja, rađala se nada za sretno 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, s Pretplatnikom u JMS Selectoru možete navesti varijablu, ali s Point-to-Point ne možete (ili ova metoda nije baš očita).
Priprema uzorkivača
Izdavač JMS
Postavljanje - svaki uzorak. Apache preporučuje koristite ovu opciju ako su redovi/teme navedeni kroz varijable.
Istek (ms) = 120000. U slučaju neuspjeha, testni zahtjevi će nestati iz reda čekanja nakon 2 minute.
Koristiti način nepostojane isporuke? - istina. IBM zahtjevataj trajni način rada osigurava pouzdano očuvanje poslanih poruka u slučaju iznenadnog kvara. I brža razmjena u nepostojanom načinu rada. Za potrebe testiranja, brzina je važnija.
U svakom Publisheru postavljam jms svojstvo koje će Pretplatnik koristiti u JMS Selectoru. Za svako podnošenje generira se nasumična vrijednost u elementu plana testiranja korisničkih parametara:
Na taj način možete biti sigurni da je pročitana ispravna poruka.
Posljednji "prazan prostor" unaprijed konfiguriranog JMS Publishera:
JMS pretplatnik
Postavljanje - svaki uzorak. Pa, razumiješ.
Timeout (ms) = 100000. Ako zahtjev ne stigne u red nakon 100 sekundi čekanja, onda je nešto pošlo po zlu.
Zaustaviti između uzoraka? - istina.
JMS Selector - prilično zgodan stvar. Konačni JMS pretplatnik:
Kako postupati s ćirilicom u prenesenim porukama. U JMeteru se prema zadanim postavkama, nakon lekture, prikazuje krivo. Kako biste to izbjegli i uživali u velikom i moćnom uvijek i posvuda, 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
Najljenija opcija. Prikladno za otklanjanje pogrešaka u svježe napisanim testovima. Ili za slučajeve kada trebate poslati barem nešto sitno. Odaberite opciju Izvor poruke - Textarea i smjestite tijelo poruke u tekstualni blok:
Prijenos datoteke
Najčešća opcija. Prikladno za većinu scenarija. Odaberite opciju Izvor poruke - Iz datoteke i u polju označiti put do poruke Datoteka - Naziv datoteke:
Prijenos datoteke u tekstualno polje
Najsvestranija opcija. Prikladno za većinu scenarija + može se koristiti u JMS Point-to-Point gdje ne postoji druga opcija slanja:
Prosljeđivanje niza bajtova
Najteža opcija. Prikladno za provjeru nepogrešivo točnog prijenosa zahtjeva do bajta, bez izobličenja, SMS-a i smetnji. Nećete to moći učiniti u zadanom JMeteru. здесь Definitivno su mi rekli za ovo.
Pa sam morao preuzeti izvori i modificirati šifra JMS pretplatnik.
Zamijenjeno u metodi extractContent(..) crta:
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 pričati o svom iskustvu testiranja razmjene gdje se na jednom kraju nalazi red čekanja, a na drugom baza podataka ili datotečni sustav.