Järjekorrad ja JMeter: jagamine avaldaja ja tellijaga
Tere, Habr! See on minu oma järg eelmine väljaanne, milles räägin JMeteri abil sõnumite järjekordadesse paigutamise võimalustest.
Valmistame andmesiini suurele föderaalettevõttele. Erinevad päringuvormingud, teisendused, keerukas marsruutimine. Testimiseks peate saatma järjekorda palju sõnumeid. Käsitsi on valu, millega mitte iga kiropraktik ei suuda toime tulla.
Sissejuhatus
Kuigi ma pidin seda valu alguses taluma. Kõik sai alguse RFHUtilist. Võimas, kuid ebamugav ja hirmutav: Noh, sa tead Rusi.
Mõnel juhul hädavajalik, kuid aktiivse kasutamise korral väheneb pidevalt.
Mugav testimine on sellega võimatu.
JMeteriga on kõik muutunud lihtsamaks. Pärast esimest meisterdamise ja sellega harjumise etappi hakkas koitma lootus õnnelikuks testimiseks.
Kasutan aktiivselt JMS Publisheri ja JMS Subscriberi proovivõtjaid. Erinevalt JMS-ist punktist punktini tundus seda paari mugavam kasutada. Näiteks JMS Selectori funktsiooni Subscriber abil saate määrata muutuja, kuid punktist punktini ei saa (või pole see meetod eriti ilmne).
Proovivõtturite ettevalmistamine
JMS kirjastus
Seadistamine – iga näidis. Apache soovitab kasutage seda valikut, kui järjekorrad/teemad on määratud muutujate kaudu.
Aegumine (ms) = 120000. Ebaõnnestumise korral kaovad testipäringud järjekorrast 2 minuti pärast.
Kas kasutada mittepüsivat edastusrežiimi? - tõsi. IBM nõudedet püsirežiim tagab edastatud sõnumite usaldusväärse säilimise äkilise tõrke korral. Ja kiirem vahetus mittepüsivas režiimis. Testimise eesmärgil on kiirus olulisem.
Igas väljaandjas määran jms atribuudi, mida tellija kasutab JMS-i valijas. Iga esitamise jaoks luuakse kasutajaparameetrite testiplaani elemendis juhuslik väärtus:
Nii saate olla kindel, et loetakse õiget sõnumit.
Eelkonfigureeritud JMS-i avaldaja viimane "tühik":
JMS-i tellija
Seadistamine – iga näidis. No saate aru.
Timeout (ms) = 100000. Kui päring ei jõua järjekorda pärast 100 sekundit ootamist, siis läks midagi valesti.
Peatada proovide vahel? - tõsi.
JMS Selector - üsna mugav asi. Lõplik JMS-i tellija:
Kuidas käsitleda kirillitsa tähestikku edastatavates sõnumites. JMeteris kuvatakse see vaikimisi pärast korrektuuri lugemist kõveralt. Selle vältimiseks ja alati ja kõikjal suure ja võimsa nautimiseks peate:
Lisage JMeteri käivitusprogrammile JVM argument:
-Dfile.encoding=UTF-8
Lisage JSR223 PostProcessor abonendile vaga joonega:
prev.setDataEncoding("UTF-8")
Saada tekst
Kõige laisem variant. Sobib värskelt kirjutatud testide silumiseks. Või juhtudel, kui on vaja saata vähemalt midagi väikest. Valige suvand Sõnumi allikas – Textarea ja asetage sõnumi sisu tekstiplokki:
Failide edastamine
Kõige tavalisem variant. Sobib enamiku stsenaariumide jaoks. Valige suvand Sõnumi allikas – failist ja märkige väljale sõnumi tee Fail – failinimi:
Faili teisaldamine tekstiväljale
Kõige mitmekülgsem variant. Sobib enamiku stsenaariumide jaoks + saab kasutada JMS-i punkt-punktis, kus teist saatmisvalikut pole:
Baitimassiivi edastamine
Kõige keerulisem variant. Sobib päringute eksimatult täpse edastamise kontrollimiseks kuni baidini ilma moonutuste, SMS-ide ja häiringuteta. Vaikimisi JMeteris seda teha ei saa. siin Mulle räägiti sellest kindlasti.
Nii et ma pidin alla laadima allikatest ja muuta kood JMS-i tellija.
Meetodis asendatud extractContent(..) rida:
buffer.append(bytesMessage.getBodyLength() + " bytes received in BytesMessage");
Kirjeldasin nelja võimalust sõnumite järjekordadesse saatmiseks, mida ma praktikas igapäevaselt kasutan. Loodan, et see teave muudab teie elu lihtsamaks. Jätkuvalt plaanin rääkida oma kogemusest, kuidas testida börsi, kus ühes otsas on järjekord ja teises andmebaas või failisüsteem.