ProHoster > Blog > Ma'muriyat > Navbatlar va JMeter: nashriyotchi va obunachi bilan almashish
Navbatlar va JMeter: nashriyotchi va obunachi bilan almashish
Salom, Xabr! Bu menikining davomi oldingi nashr, unda men JMeter yordamida xabarlarni navbatga qo'yish variantlari haqida gapiraman.
Biz yirik federal kompaniya uchun ma'lumotlar avtobusini yaratmoqdamiz. Har xil so'rov formatlari, transformatsiyalar, murakkab marshrutlash. Sinov uchun siz navbatga juda ko'p xabarlarni yuborishingiz kerak. Qo'lda - bu har bir chiropraktor bilan shug'ullana olmaydigan og'riq.
kirish
Garchi dastlab bu dardga chidashga majbur bo'ldim. Hammasi RFHUtil bilan boshlandi. Kuchli, ammo noqulay va qo'rqinchli: Xo'sh, siz Rusni bilasiz.
Ba'zi hollarda ajralmas, lekin faol foydalanishda doimiy ravishda pasayib boradi.
U bilan qulay test o'tkazish mumkin emas.
JMeter bilan hamma narsa osonlashdi. O'zlashtirish va ko'nikishning birinchi bosqichidan so'ng, baxtli sinov uchun umid paydo bo'ldi.
Men JMS Publisher va JMS Subscriber namuna oluvchilardan faol foydalanaman. JMS Point-to-Point-dan farqli o'laroq, bu juftlikdan foydalanish qulayroq tuyuldi. Masalan, JMS Selector-da Subscriber bilan siz o'zgaruvchini belgilashingiz mumkin, lekin Point-to-Point bilan siz qila olmaysiz (yoki bu usul unchalik aniq emas).
Namuna oluvchilarni tayyorlash
JMS nashriyoti
O'rnatish - Har bir namuna. Apache tavsiya qiladi Agar navbatlar/mavzular o'zgaruvchilar orqali ko'rsatilgan bo'lsa, ushbu parametrdan foydalaning.
Muddati (ms) = 120000. Muvaffaqiyatsiz bo'lsa, test so'rovlari 2 daqiqadan so'ng navbatdan yo'qoladi.
Doimiy bo'lmagan yetkazib berish rejimi ishlatilsinmi? - rost. IBM tasdiqlaydibu doimiy rejim to'satdan nosozlik bo'lgan taqdirda uzatilgan xabarlarning ishonchli saqlanishini ta'minlaydi. Va doimiy bo'lmagan rejimda tezroq almashish. Sinov maqsadlari uchun tezlik muhimroqdir.
Har bir nashriyotda men obunachi JMS selektorida foydalanadigan jms xususiyatini o'rnatdim. Har bir topshirish uchun foydalanuvchi parametrlari test rejasi elementida tasodifiy qiymat hosil bo'ladi:
Shunday qilib, siz to'g'ri xabar o'qilganligiga ishonch hosil qilishingiz mumkin.
Oldindan tuzilgan JMS Publisherning yakuniy "bo'shligi":
JMS obunachisi
O'rnatish - Har bir namuna. Xo'sh, tushunasiz.
Vaqt tugashi (ms) = 100000. Agar so'rov 100 soniya kutishdan keyin navbatga kelmasa, unda nimadir noto'g'ri ketdi.
Namunalar o'rtasida to'xtash kerakmi? - rost.
JMS Selector - juda qulay narsa. Yakuniy JMS obunachisi:
Uzatilgan xabarlarda kirill alifbosi bilan qanday ishlash kerak. JMeter-da, sukut bo'yicha, tekshirilgandan so'ng, u egri ko'rsatiladi. Bunga yo'l qo'ymaslik va har doim va hamma joyda buyuk va qudratli narsadan bahramand bo'lish uchun sizga kerak:
JMeter "boshlovchi" ga JVM argumentini qo'shing:
-Dfile.encoding=UTF-8
JSR223 PostProcessor-ni abonentga ajoyib chiziq bilan qo'shing:
prev.setDataEncoding("UTF-8")
Matn yuboring
Eng dangasa variant. Yangi yozilgan testlarni tuzatish uchun javob beradi. Yoki hech bo'lmaganda kichik narsalarni yuborishingiz kerak bo'lgan holatlar uchun. Variantni tanlang Xabar manbai - Textarea va xabarning asosiy qismini matn blokiga joylashtiring:
Faylni uzatish
Eng keng tarqalgan variant. Ko'pgina stsenariylar uchun javob beradi. Variantni tanlang Xabar manbai - fayldan va maydonda xabarga yo'lni ko'rsating Fayl - Fayl nomi:
Faylni matn maydoniga o'tkazish
Eng ko'p qirrali variant. Ko'pgina stsenariylar uchun mos + JMS Point-to-Point-da ikkinchi yuborish opsiyasi mavjud bo'lmaganda ishlatilishi mumkin:
Bayt massividan o'tish
Eng qiyin variant. So'rovlarning baytgacha, buzilmasdan, SMS va bezovtalanishsiz to'g'ri uzatilishini tekshirish uchun javob beradi. Siz buni standart JMeterda qila olmaysiz. shu yerda Menga bu haqda aniq aytishdi.
Shuning uchun men yuklab olishim kerak edi manbalar va o'zgartirish kodi JMS obunachisi.
Usulda almashtirildi extractContent(..) qator:
buffer.append(bytesMessage.getBodyLength() + " bytes received in BytesMessage");
Faqat bir nechta JSR223 namunalarini qo'shish qoladi. Birinchisi, tasodifiy baytlarni o'z ichiga olgan DAT faylini yaratish uchun Nashriyotchi/Abonent juftligidan oldin:
Men har kuni amalda ishlatadigan navbatlarga xabar yuborishning to'rtta usulini tasvirlab berdim. Umid qilamanki, bu ma'lumot hayotingizni osonlashtiradi. Davomida men bir uchida navbat, ikkinchi tomonida ma'lumotlar bazasi yoki fayl tizimi mavjud bo'lgan almashinuvni sinab ko'rish tajribam haqida gapirishni rejalashtirmoqdaman.