ProHoster > Blog > башкаруу > Кезектер жана JMeter: Жарыялоочу жана жазылуучу менен алмашуу
Кезектер жана JMeter: Жарыялоочу жана жазылуучу менен алмашуу
Эй Хабр! Бул менин уландысы мурунку жарыялоо, анда мен JMeter аркылуу билдирүүлөрдү кезекке коюунун варианттары жөнүндө сүйлөшөм.
Биз чоң федералдык компания үчүн маалымат автобусун куруп жатабыз. Ар кандай суроо форматтары, трансформациялар, татаал маршрутизация. Сыноо үчүн сиз кезекте турган көп билдирүүлөрдү жөнөтүшүңүз керек. Кол менен - ар бир хиропрактика көтөрө албаган оору.
тааныштыруу
Бул ооруга адегенде чыдаш керек да. Мунун баары RFHUtil менен башталды. Күчтүү, бирок ыңгайсыз жана коркунучтуу: Русаны билесиз.
Кээ бир учурларда алмаштырылгыс, бирок активдүү колдонууда туруктуу төмөндөйт.
Аны менен ыңгайлуу сыноо мүмкүн эмес.
JMeter менен баары оңой болуп калды. Өздөштүрүү жана көнүү менен биринчи этаптан кийин бактылуу сынактан үмүт пайда болду.
Мен JMS Publisher жана JMS Subscriber үлгүлөрүн жигердүү колдоном. JMS Point-to-Point айырмаланып, бул жубайлар менен иштөө ыңгайлуураак көрүндү. Мисалы, сиз JMS Selectorдогу Subscriber'да өзгөрмө көрсөтсөңүз болот, бирок Point-to-Point'те эмес (же бул ыкма өтө ачык эмес).
Үлгүлөрдү даярдоо
JMS Publisher
Орнотуу - Ар бир үлгү. Apache сунуштайт кезектер/темалар өзгөрмөлөр аркылуу аныкталса, бул параметрди колдонуңуз.
Мөөнөтү (мс) = 120000. Иштен чыкпаса, тесттик суроо-талаптар 2 мүнөттөн кийин кезектен жок болот.
Туруктуу жеткирүү режими колдонулсунбу? — чын. IBM дооматтарбул туруктуу режим күтүлбөгөн жерден ката болгон учурда өткөрүлүп берилген билдирүүлөрдүн коопсуз сакталышын камсыздайт. Жана туруктуу эмес режимде тез алмашуу. Сыноо максатында ылдамдык маанилүү.
Ар бир Жарыялоочуда, мен Абонент JMS селекторунда колдоно турган jms касиетин койдум. Ар бир тапшыруу үчүн Колдонуучунун параметрлеринин тест планынын элементинде кокустук маани түзүлөт:
Ушундай жол менен сиз туура билдирүү окулуп жаткандыгына ишене аласыз.
Алдын ала конфигурацияланган JMS Publisherдин акыркы "боштугу":
JMS абоненти
Орнотуу - Ар бир үлгү. Мейли, түшүнөсүң.
Тайм-аут (мс) = 100000. Эгерде суроо-талап 100 секунд күткөндөн кийин кезекке келбесе, анда бир жерден ката кетти.
Үлгүнүн ортосунда токтоп туруңузбу? — чын.
JMS Selector - абдан ыңгайлуу буюм. Акыркы JMS абоненти:
Берилген билдирүүлөрдөгү кириллица менен кантип иштөө керек. JMeterде, демейки боюнча, кемиткенден кийин, ал кыйшык көрүнөт. Мунун алдын алуу жана улуу жана күчтүү ар дайым жана бардык жерде ырахат алуу үчүн, сизге керек:
JMeter "ишке киргизгичке" JVM аргументин кошуңуз:
-Dfile.encoding=UTF-8
Жазуучуга JSR223 PostProcessor кошуңуз:
prev.setDataEncoding("UTF-8")
Текст өткөрүү
Эң жалкоо вариант. Жаңы жазылган тесттерди оңдоо үчүн ылайыктуу. Же, жок эле дегенде, кичинекей бир нерсе жөнөтүү керек болгон учурларда. Опцияны тандаңыз Билдирүү булагы - Textarea жана билдирүүнүн негизги бөлүгүн тексттик блокко жайгаштырыңыз:
File Transfer
Эң көп вариант. Көпчүлүк сценарийлер үчүн ылайыктуу. Опцияны тандаңыз Билдирүү булагы - Файлдан жана талаада билдирүүгө жолду көрсөтүңүз Файлдын аты:
Файлды текст кутучасына өткөрүү
Эң универсалдуу вариант. Көпчүлүк сценарийлерге ылайыктуу + экинчи жөнөтүү опциясы жок JMS Point-to-Pointте колдонулушу мүмкүн:
Байт массивинен өтүү
Эң кыйын вариант. Бир байтка чейинки суроо-талаптарды бурмалоосуз, смссиз жана ызы-чуусуз жеткирүүнү текшерүү үчүн ылайыктуу. Сиз муну демейки JMeterде кыла албайсыз, бул жерде Муну мага ачык айтышкан.
Ошентип, мен жүктөп алууга туура келди булактар жана өзгөртүү коду JMS абоненти.
ыкмасы менен алмаштырылган extractContent(..) сап:
buffer.append(bytesMessage.getBodyLength() + " bytes received in BytesMessage");
Кезекке билдирүүлөрдү жөнөтүүнүн төрт жолу сүрөттөлдү, мен аны күн сайын иш жүзүндө колдоном. Бул маалымат сиздин жашооңузду жеңилдетет деп ишенем. Улантууда, мен бир четинде кезек, экинчи жагынан маалымат базасы же файл системасы турган алмашууну сынап көрүү боюнча өз тажрыйбам жөнүндө сүйлөшкүм келет.