Eilės ir JMeter: bendrinimas su leidėju ir prenumeratoriumi
Sveiki, Habr! Tai mano tęsinys ankstesnis leidinys, kuriame kalbėsiu apie pranešimų įdėjimo į eiles naudojant JMeter parinktis.
Gaminame duomenų magistralę didelei federalinei įmonei. Įvairūs užklausų formatai, transformacijos, sudėtingas maršruto parinkimas. Norint atlikti testavimą, į eilę reikia išsiųsti daug pranešimų. Rankiniu būdu yra skausmas, su kuriuo ne kiekvienas chiropraktikas gali susidoroti.
įvedimas
Nors iš pradžių turėjau taikstytis su šiuo skausmu. Viskas prasidėjo nuo RFHUtil. Galingas, bet nepatogus ir baisus: Na, tu žinai Rusą.
Kai kuriais atvejais būtinas, tačiau aktyvaus naudojimo atveju nuolat mažėja.
Patogus testavimas su juo neįmanomas.
Su JMeter viskas tapo lengviau. Po pirmojo įsisavinimo ir pripratimo etapo ėmė ryškėti laimingų išbandymų viltis.
Aktyviai naudoju JMS Publisher ir JMS Subscriber mėginių rinktuvus. Skirtingai nei JMS taškas į tašką, ši pora atrodė patogesnė naudoti. Pavyzdžiui, JMS selektoriuje su Subscriber galite nurodyti kintamąjį, bet su tašku į tašką to negalite (arba šis metodas nėra labai akivaizdus).
Mėginių ruošimas
JMS leidykla
Sąranka – kiekvienas pavyzdys. Apache rekomenduoja naudokite šią parinktį, jei eilės/temos nurodytos per kintamuosius.
Galiojimo laikas (ms) = 120000. Nesėkmės atveju testo užklausos dings iš eilės po 2 minučių.
Naudoti nenuolatinį pristatymo režimą? - tiesa. IBM pretenzijoskad nuolatinis režimas užtikrina patikimą perduodamų pranešimų išsaugojimą staigaus gedimo atveju. Ir greitesnis keitimas nenuolatiniu režimu. Testavimo tikslais greitis yra svarbesnis.
Kiekviename leidėjuje nustatau jms ypatybę, kurią prenumeratorius naudos JMS parinkiklyje. Kiekvienam pateikimui naudotojo parametrų testavimo plano elemente sugeneruojama atsitiktinė vertė:
Taip galite būti tikri, kad perskaitytas teisingas pranešimas.
Galutinis iš anksto sukonfigūruoto JMS leidėjo „tuščias“:
JMS abonentas
Sąranka – kiekvienas pavyzdys. Na, supranti.
Timeout (ms) = 100000. Jei užklausa nepatenka į eilę po 100 sekundžių laukimo, vadinasi, kažkas nutiko.
Sustoti tarp mėginių? - tiesa.
JMS Selector - gana patogu dalykas. Galutinis JMS abonentas:
Kaip elgtis su kirilicos abėcėle perduodamuose pranešimuose. JMeter pagal numatytuosius nustatymus po korektūros jis rodomas kreivai. Kad to išvengtumėte ir visada ir visur mėgautumėte didingumu ir galingumu, turite:
Pridėkite JVM argumentą prie JMeter „paleidimo priemonės“:
-Dfile.encoding=UTF-8
Pridėkite JSR223 PostProcessor prie abonento su griovia linija:
prev.setDataEncoding("UTF-8")
Siųsti tekstą
Pats tingiausias variantas. Tinka ką tik parašytų testų derinimui. Arba atvejams, kai reikia atsiųsti bent ką nors mažo. Pasirinkite parinktį Pranešimo šaltinis – Textarea ir įdėkite pranešimo turinį į teksto bloką:
Failų perkėlimas
Dažniausias variantas. Tinka daugeliui scenarijų. Pasirinkite parinktį Pranešimo šaltinis – iš failo ir lauke nurodykite kelią iki pranešimo Failas – failo pavadinimas:
Failo perkėlimas į teksto lauką
Pats universaliausias variantas. Tinka daugeliui scenarijų + gali būti naudojamas JMS taškas į tašką, kur nėra antros siuntimo parinkties:
Baitų masyvo perdavimas
Sunkiausias variantas. Tinka patikrinti neklystamai tikslų užklausų perdavimą iki baito, be iškraipymų, SMS ir trikdžių. Numatytajame JMeter to padaryti negalėsite. čia Man apie tai tikrai buvo pasakyta.
Taigi turėjau atsisiųsti šaltiniai ir modifikuoti kodas JMS abonentas.
Pakeistas metodu extractContent(..) eilutė:
buffer.append(bytesMessage.getBodyLength() + " bytes received in BytesMessage");
Aprašiau keturis būdus, kaip siųsti žinutes į eiles, kuriuos praktikoje naudoju kasdien. Tikiuosi, kad ši informacija palengvins jūsų gyvenimą. Tęsinyje planuoju papasakoti apie savo patirtį bandant mainus, kurių viename gale yra eilė, o kitame - duomenų bazė arba failų sistema.