[英]Need to set JMS_IBM_LAST_MSG_IN_GROUP property to true for IBM MQ testing using JMeter
[英]How can I measure the response (processing) times of a SuT using JMS Point-to-Point messaging model through IBM MQ?
我有一個設置了 2 個隊列的遠程 IBM MQ 實例。 在它們后面是一個被測系統,它總是接收放在 INBOUND.QUEUE 上的消息,做一些處理並將響應消息放在“OUTBOUND.QUEUE”上。
我想測試這個 SuT 的響應時間。 為了實現這一點,我需要設置這個場景:
在 JMeter 中,我有一個與本文中描述的設置非常相似的設置,使用帶有常規代碼的 JSR223 測試元素與 IBM MQ 隊列進行交互 - 如果我的理解是正確的,則通過JMS 。 與文章的不同之處在於,為了使用出站隊列中的消息,我有另一個 setUp 線程組,它為我使用消息的“OUTBOUND.QUEUE”設置了另一個連接,另一個tearDown 線程組關閉了這個連接在末尾。
到目前為止它可以工作,但它盲目地消耗消息,我需要確保我正在讀取(消耗)每個初始消息的響應延續,以便我可以計算每個完整請求 - 響應流的 SuT 的響應或處理時間. 我知道我可以為此目的使用JMS 關聯 ID ,但我不知道如何使用。
我可以使用什么方法在消息創建和消費時獲取此關聯 ID?
我是否需要一些數據結構來在消息創建時放置所有關聯 ID,以便我可以放置一個條件,例如 IF msg.getStringProperty("JMS_CorreationID") is IN 生成的 id 列表,將其從該數據結構中刪除,然后獲取JMS_IBM_PUTTIME 屬性來確定“第一條”消息的時間戳,然后最終計算當前時間和第一條消息的時間之間的時間戳增量?
一旦我這樣做了,我如何通過SampleResult類實例在第二個線程組中配置 JSR223 采樣器(消費者),以便它報告的不是它自己的執行時間,而是 JMS_IBM_PUTTIME 和當前時間之間的增量(這將代表處理時間)?
最后,一旦完成,我如何才能將第二個 JSR223 采樣器(消費者)包含在負載測試報告中?
這個邏輯是否正確/太復雜? 任何幫助或一些代碼示例將不勝感激。
通常你應該在一個帖子中只問一個問題,我認為沒有人願意寫一本書來回答你的所有問題(並且免費為你做你的工作)
props
簡寫prev.elapsedTime = 123456
,將123456
替換為具有給定相關 ID 的發送和接收消息之間的實際增量SampleResult.setIgnore()
函數,這樣您調用此函數的 JSR223 Sampler 既不會顯示在 Listeners 中,也不會顯示在 .jtl 結果文件中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.