เบ„เบดเบง เปเบฅเบฐ JMeter: เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฑเบšเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆ เปเบฅเบฐเบœเบนเป‰เบˆเบญเบ‡

เบชเบฐเบšเบฒเบเบ”เบต, Habr! เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบชเบทเบšโ€‹เบ•เปเปˆโ€‹เบ‚เบญเบ‡โ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹ เบเบฒเบ™เบžเบดเบกเป€เบœเบตเบเปเบœเปˆเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เปƒเบ™เบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบงเบฒเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบขเบนเปˆเปƒเบ™เบ„เบดเบงเป‚เบ”เบเปƒเบŠเป‰ JMeter.

เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบชเป‰เบฒเบ‡เบฅเบปเบ”เป€เบกเบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเบšเปเบฅเบดเบชเบฑเบ”เบฅเบฑเบ”เบ–เบฐเบšเบฒเบ™เบเบฒเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบฎเป‰เบญเบ‡โ€‹เบ‚เปโ€‹เบ—เบตเปˆโ€‹เบซเบผเบฒเบโ€‹เบซเบผเบฒเบโ€‹, เบเบฒเบ™โ€‹เบซเบฑเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹, เป€เบชเบฑเป‰เบ™โ€‹เบ—เบฒเบ‡ intricateโ€‹. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบซเบผเบฒเบเป„เบ›เบซเบฒเปเบ–เบง. เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เปเบกเปˆเบ™เบ„เบงเบฒเบกเป€เบˆเบฑเบšเบ›เบงเบ”เบ—เบตเปˆเบšเปเปˆ chiropractor เบ—เบธเบเบ„เบปเบ™เบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบš.

เบ„เบดเบง เปเบฅเบฐ JMeter: เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฑเบšเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆ เปเบฅเบฐเบœเบนเป‰เบˆเบญเบ‡

เบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบต

เป€เบ–เบดเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒโ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป„เบ”เป‰โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เป€เบˆเบฑเบšโ€‹เบ›เบงเบ”โ€‹เบ™เบตเป‰โ€‹เปƒเบ™โ€‹เบ•เบญเบ™โ€‹เบ—เปเบฒโ€‹เบญเบดเบ”. เบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ RFHUtil. เบกเบตเบญเปเบฒเบ™เบฒเบ”, เปเบ•เปˆเบ‡เบธเปˆเบกเบ‡เปˆเบฒเบกเปเบฅเบฐเบขเป‰เบฒเบ™: เบ”เบต, เบ—เปˆเบฒเบ™เบฎเบนเป‰เบˆเบฑเบ Rus.

เบ„เบดเบง เปเบฅเบฐ JMeter: เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฑเบšเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆ เปเบฅเบฐเบœเบนเป‰เบˆเบญเบ‡

เบ‚เบฒเบ”เบšเปเปˆเป„เบ”เป‰เปƒเบ™เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบต, เปเบ•เปˆเบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบซเป‰เบฒเบงเบซเบฑเบ™.
เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบชเบฐเบ”เบงเบเป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบเบฑเบšเบกเบฑเบ™.

เบ”เป‰เบงเบ JMeter เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™. เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบ—เปเบฒโ€‹เบญเบดเบ”โ€‹เบ‚เบญเบ‡ mastering เปเบฅเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบเบฑเบšโ€‹เบกเบฑเบ™โ€‹, เบ„เบงเบฒเบกโ€‹เบซเบงเบฑเบ‡โ€‹เป„เบ”เป‰โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบญเบฒโ€‹เบฅเบธเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบชเบธเบโ€‹.

เบ‚เป‰เบญเบเปƒเบŠเป‰ JMS Publisher เปเบฅเบฐ JMS Subscriber เบ•เบปเบงเบขเปˆเบฒเบ‡เบขเปˆเบฒเบ‡เบˆเบดเบ‡เบˆเบฑเบ‡. เบšเปเปˆเบ„เบทเบเบฑเบš JMS Point-to-Point, เบ„เบนเปˆเบ™เบตเป‰เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบชเบฐเบ”เบงเบเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ”เป‰เบงเบ Subscriber เปƒเบ™ JMS Selector เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเปเบ›เป„เบ”เป‰, เปเบ•เปˆเบ”เป‰เบงเบ Point-to-Point เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ” (เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™เบซเบผเบฒเบ).

เบเบฒเบ™เบเบฐเบเบฝเบกเบ•เบปเบงเบขเปˆเบฒเบ‡

JMS Publisher

  • เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ - เปเบ•เปˆเบฅเบฐเบ•เบปเบงเบขเปˆเบฒเบ‡. Apache เปเบ™เบฐ เบ™เบณ เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เป‰เบฒเบ„เบดเบง/เบซเบปเบงเบ‚เปเป‰เบ–เบทเบเบฅเบฐเบšเบธเบœเปˆเบฒเบ™เบ•เบปเบงเปเบ›.
  • เปเบปเบ”เบญเบฒเบเบธ (ms) = 120000. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบง, เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบˆเบฐเบซเบฒเบเป„เบ›เบˆเบฒเบเปเบ–เบงเบซเบผเบฑเบ‡เบˆเบฒเบ 2 เบ™เบฒเบ—เบต.
  • เปƒเบŠเป‰เป‚เปเบ”เบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เปเบšเบšเบšเปเปˆเบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เบšเป? - เบ„เบงเบฒเบกเบˆเบดเบ‡. IBM เบญเบฐเบ™เบธเบกเบฑเบ”เบฎเบนเบšเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบฎเบฑเบเบชเบฒเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเบขเปˆเบฒเบ‡เบเบฐเบ—เบฑเบ™เบซเบฑเบ™. เปเบฅเบฐเบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™เป„เบงเบ‚เบถเป‰เบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเปˆเบ„เบปเบ‡เบ—เบตเปˆ. เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เบ„เบงเบฒเบกเป„เบงเปเบกเปˆเบ™เบชเปเบฒเบ„เบฑเบ™เบเบงเปˆเบฒ.

เปƒเบ™เปเบ•เปˆเบฅเบฐเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆเบ‚เป‰เบญเบเบเปเบฒเบ™เบปเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” jms เบ—เบตเปˆเบœเบนเป‰เบˆเบญเบ‡เบˆเบฐเปƒเบŠเป‰เปƒเบ™เบ•เบปเบงเป€เบฅเบทเบญเบ JMS. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡, เบ„เปˆเบฒเบชเบธเปˆเบกเปเบกเปˆเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเปเบœเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบœเบนเป‰เปƒเบŠเป‰:

เบ„เบดเบง เปเบฅเบฐ JMeter: เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฑเบšเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆ เปเบฅเบฐเบœเบนเป‰เบˆเบญเบ‡

เบงเบดเบ—เบตเบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ–เบทเบเบญเปˆเบฒเบ™.

"เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ" เบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡ JMS Publisher เบ—เบตเปˆเบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป„เบงเป‰เบฅเปˆเบงเบ‡เปœเป‰เบฒ:

เบ„เบดเบง เปเบฅเบฐ JMeter: เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฑเบšเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆ เปเบฅเบฐเบœเบนเป‰เบˆเบญเบ‡

เบชเบฐเบกเบฒเบŠเบดเบ JMS

  • เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ - เปเบ•เปˆเบฅเบฐเบ•เบปเบงเบขเปˆเบฒเบ‡. เบ”เบต, เบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆ.
  • Timeout (ms) = 100000. เบ–เป‰เบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบšเปเปˆเบกเบฒเบฎเบญเบ”เบ„เบดเบงเบซเบผเบฑเบ‡เบˆเบฒเบเบฅเปเบ–เป‰เบฒ 100 เบงเบดเบ™เบฒเบ—เบต, เปเบฅเป‰เบงเบกเบตเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบœเบดเบ”เบžเบฒเบ”.
  • เบขเบธเบ”เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡? - เบ„เบงเบฒเบกเบˆเบดเบ‡.

JMS Selector - เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบชเบฐเบ”เบงเบ เบชเบดเปˆเบ‡. เบชเบฐเบกเบฒเบŠเบดเบ JMS เบชเบธเบ”เบ—เป‰เบฒเบ:

เบ„เบดเบง เปเบฅเบฐ JMeter: เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฑเบšเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆ เปเบฅเบฐเบœเบนเป‰เบˆเบญเบ‡

เบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ•เบปเบงเบญเบฑเบเบชเบญเบ™ Cyrillic เปƒเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบชเบปเปˆเบ‡เบ•เปเปˆ. เปƒเบ™ JMeter, เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบซเบผเบฑเบ‡เบˆเบฒเบ proofreading, เบกเบฑเบ™เบ–เบทเบเบชเบฐเปเบ”เบ‡เปเบšเบšเบšเบดเบ”เป€เบšเบทเบญเบ™. เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ™เบตเป‰เปเบฅเบฐเบกเบตเบ„เบงเบฒเบกเบชเบธเบเบ—เบตเปˆเบเบดเปˆเบ‡เปƒเบซเบเปˆเปเบฅเบฐเบกเบตเบญเปเบฒเบ™เบฒเบ”เบชเบฐเป€เบซเบกเบตเปเบฅเบฐเบขเบนเปˆเบ—เบปเปˆเบงเบ—เบธเบเปเบซเปˆเบ‡, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡:

  1. เป€เบžเบตเปˆเบกเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ JVM เปƒเบชเปˆ JMeter โ€œเบ•เบปเบงเป€เบ›เบตเบ”โ€:
    -Dfile.encoding=UTF-8
  2. เป€เบžเบตเปˆเบก JSR223 PostProcessor เปƒเบซเป‰เบเบฑเบšเบœเบนเป‰เบˆเบญเบ‡เบ—เบตเปˆเบกเบตเป€เบชเบฑเป‰เบ™ groovy:
    prev.setDataEncoding("UTF-8")

เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ‚เบตเป‰เบเบฝเบ”เบ—เบตเปˆเบชเบธเบ”. เป€เบซเบกเบฒเบฐเบชเปเบฒเบฅเบฑเบš debugging เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบฅเบฒเบเบฅเบฑเบเบญเบฑเบเบชเบญเบ™เบชเบปเบ”. เบซเบผเบทเบชเปเบฒเบฅเบฑเบšเบเปเบฅเบฐเบ™เบตเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบปเปˆเบ‡เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ. เป€เบฅเบทเบญเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบ เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก - Textarea เปเบฅเบฐเบงเบฒเบ‡เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบขเบนเปˆเปƒเบ™เบšเบฅเบฑเบญเบเบ‚เปเป‰เบ„เบงเบฒเบก:

เบ„เบดเบง เปเบฅเบฐ JMeter: เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฑเบšเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆ เปเบฅเบฐเบœเบนเป‰เบˆเบญเบ‡

เบเบฒเบ™เป‚เบญเบ™เป„เบŸเบฅเปŒ

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบธเบ”. เป€เปเบฒเบฐเบชเบณเบฅเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆ. เป€เบฅเบทเบญเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบ เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก - เบˆเบฒเบเป„เบŸเบฅเปŒ เปเบฅเบฐเบŠเบตเป‰เบšเบญเบเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบ™เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก เป„เบŸเบฅเปŒ - เบŠเบทเปˆเป„เบŸเบฅเปŒ:

เบ„เบดเบง เปเบฅเบฐ JMeter: เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฑเบšเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆ เปเบฅเบฐเบœเบนเป‰เบˆเบญเบ‡

เบเบฒเบ™เป‚เบญเบ™เป„เบŸเบฅเปŒเป„เบ›เบซเบฒเบŠเปˆเบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบซเบผเบฒเบเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”. เป€เปเบฒเบฐเบชเบณเบฅเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆ + เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เปƒเบ™ JMS Point-to-Point เบšเปˆเบญเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบปเปˆเบ‡เบ—เบตเบชเบญเบ‡:

เบ„เบดเบง เปเบฅเบฐ JMeter: เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฑเบšเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆ เปเบฅเบฐเบœเบนเป‰เบˆเบญเบ‡

เบ–เปˆเบฒเบเบ—เบญเบ”เบญเบฒเป€เบฃ byte

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบเบฒเบเบ—เบตเปˆเบชเบธเบ”. เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบเบฒเบ™โ€‹เบชเบปเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡ infallibly เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบฅเบปเบ‡โ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เป„เบšโ€‹เบ•โ€‹เปŒโ€‹, เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบšเบดเบ”โ€‹เป€เบšเบทเบญเบ™โ€‹, SMS เปเบฅเบฐ perturbationโ€‹. เบ—เปˆเบฒเบ™เบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰เป„เบ”เป‰เปƒเบ™ JMeter เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ—เบตเปˆเบ™เบตเป‰ เบ‚เป‰เบญเบเป„เบ”เป‰เบ–เบทเบเบšเบญเบเบขเปˆเบฒเบ‡เปเบ™เปˆเบ™เบญเบ™เบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰.

เบชเบฐเบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบ”เบฒเบงเป‚เบซเบฅเบ” เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™ เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เปเบเป‰เป„เบ‚ เบฅเบฐเบซเบฑเบ” เบชเบฐเบกเบฒเบŠเบดเบ JMS.

เบ—เบปเบ”เปเบ—เบ™เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™ extractContent(..) เปเบ–เบง:

buffer.append(bytesMessage.getBodyLength() + " bytes received in BytesMessage");

on:

byte[] bytes = new byte[(int) bytesMessage.getBodyLength()];
bytesMessage.readBytes(bytes);
try {
	buffer.append(new String(bytes, "UTF-8"));
} catch (UnsupportedEncodingException e) {
	throw new RuntimeException(e);
}

เปเบฅเบฐเบชเป‰เบฒเบ‡ JMeter เบ„เบทเบ™เปƒเปเปˆ.

เบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเปเบกเปˆเบ™เบเบฒเบ™เป€เบžเบตเปˆเบก JSR223 Samplers เบชเบญเบ‡เบ„เบนเปˆ. เบญเบฑเบ™เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบเปˆเบญเบ™เบ„เบนเปˆ Publisher/Subscriber เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒ DAT เบ—เบตเปˆเบกเบต bytes เปเบšเบšเบชเบธเปˆเบก:

import org.apache.commons.lang3.RandomUtils;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

vars.put("PATH_TO_BYTES", "C:temprandomBytes.dat");
File RESULT_FILE = new File(vars.get("PATH_TO_BYTES"));
byte[] arr = RandomUtils.nextBytes((int)(Math.random()*10000));
        try {
            FileOutputStream fos = new FileOutputStream(RESULT_FILE);
            fos.write(arr);
            fos.close();
        } catch (IOException e) {
            System.out.println("file not found");
        }

เบญเบฑเบ™เบ—เบตเบชเบญเบ‡ - เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบชเบฐเบ„เบดเบš, เบฅเบถเบšเป„เบŸเบฅเปŒ:

import java.io.File;

File RESULT_FILE = new File(vars.get("PATH_TO_BYTES"));
RESULT_FILE.delete();

เปเบฅเบฐเบขเปˆเบฒเบฅเบทเบกเป€เบžเบตเปˆเบกเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เปƒเบชเปˆเป„เบŸเบฅเปŒเปƒเบ™ Publisher:

เบ„เบดเบง เปเบฅเบฐ JMeter: เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฑเบšเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆ เปเบฅเบฐเบœเบนเป‰เบˆเบญเบ‡

เปเบฅเบฐเบเบฑเบ‡เบกเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเปƒเบ™ JSR223 Assertion เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบˆเบญเบ‡ - เบ›เบฝเบšเบ—เบฝเบš bytes เปเบซเบผเปˆเบ‡เบเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบกเบฒเบฎเบญเบ”เปƒเบ™เปเบ–เบงเบ‚เบญเบ‡เบœเบนเป‰เบฎเบฑเบš:

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;

Path path = Paths.get(vars.get("PATH_TO_BYTES"), new String[0]);
byte[] originalArray = Files.readAllBytes(path);
byte[] changedArray = ctx.getPreviousResult().getResponseData();
System.out.println(changedArray.length);

if (Arrays.equals(originalArray, changedArray))
	{
     	SampleResult.setResponseMessage("OK");

	} else {
	   SampleResult.setSuccessful(false);
     	   SampleResult.setResponseMessage("Comparison failed");
	   SampleResult.setResponseData("Bytes have changed","UTF-8");
     	   IsSuccess=false;
	}

เบชเบฐเบซเบฅเบธเบš

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเบชเบตเปˆเบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเป„เบ›เบซเบฒเบ„เบดเบง, เป€เบŠเบดเปˆเบ‡เบ‚เป‰เบญเบเปƒเบŠเป‰เบ—เบธเบเป†เบกเบทเป‰เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เบ‚เป‰เบญเบเบซเบงเบฑเบ‡เบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบŠเบตเบงเบดเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™. เบชเบทเบšเบ•เปเปˆ, เบ‚เป‰เบญเบเบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบ›เบฐเบชเบปเบšเบเบฒเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบ—เบตเปˆเบกเบตเปเบ–เบงเบขเบนเปˆเบ›เบฒเบเบซเบ™เบถเปˆเบ‡เปเบฅเบฐเบฅเบฐเบšเบปเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบผเบทเป„เบŸเบฅเปŒเบขเบนเปˆเบšเปˆเบญเบ™เบญเบทเปˆเบ™.

เบ›เบฐเบซเบเบฑเบ”เป€เบงเบฅเบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เปเบฅเบฐเบ‚เปเบ‚เบญเบšเปƒเบˆเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เบ„เบดเบง เปเบฅเบฐ JMeter: เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฑเบšเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆ เปเบฅเบฐเบœเบนเป‰เบˆเบญเบ‡

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™