groovy - 需要将 JMS_IBM_LAST_MSG_IN_GROUP 属性设置为 true 以使用 JMeter 进行 IBM MQ 测试
问题描述
我正在使用 JMeter 测试 IBM MQ,并能够建立与队列的连接以通过它发送请求。但是,我需要将其中一条消息的“JMS_IBM_LAST_MSG_IN_GROUP”属性设置为 true,但无法这样做。我在发送请求或尝试将属性设置为 true 时使用下面的代码,但是当我签入后端时,它仍然设置为默认值,即 false。任何线索我在这里缺少什么。
注意:正在另一个采样器中建立连接,并在此处使用该连接。此代码可以正常发送任何请求,只是该属性未设置为 true。
import java.time.Instant
import com.ibm.msg.client.jms.JmsConstants
def sess = System.getProperties().get("Session")
def destination = System.getProperties().get("Destination")
def producer = sess.createProducer(destination)
def rnd = new Random(System.currentTimeMillis())
def payload = String.format('${groupid}|${sequencenumber}|rest of the payload|')
def msg = sess.createTextMessage(payload)
println('Payload --> ' + payload)
msg.setBooleanProperty(JmsConstants.JMS_IBM_LAST_MSG_IN_GROUP,true)
def start = Instant.now()
producer.send(msg)
def stop = Instant.now()
producer.close()
SampleResult.setResponseData(msg.toString())
SampleResult.setDataType( org.apache.jmeter.samplers.SampleResult.TEXT)
SampleResult.setLatency( stop.toEpochMilli() - start.toEpochMilli())
解决方案
您的代码不包含任何设置组 ID 或序列号的内容。我假设我们已经显示了所有相关代码,在这种情况下,我认为您缺少以下代码:
msg.setStringProperty("JMSXGroupID", groupid);
msg.setIntProperty("JMSXGroupSeq", sequencenumber);
推荐阅读
- r - 从忽略R中的空白的表中产生所有可能的组合
- javascript - 如何使用量角器获取设置值名字?
- r - 组合两个“ts”对象时的不一致数组
- jquery - jQuery html() 将角度属性转换为小写
- cordova - 在 cordova 插件中将类路径添加到 build.gradle
- javascript - 在 chart.js 条形图中需要多个图例
- ldap - 如何获取 LDAP SonarQube 插件 jar 文件?
- airflow - 气流调度程序不断崩溃,数据库连接错误(谷歌作曲家)
- reactjs - 如何在 React/Redux 中使自动完成更快更流畅?
- asp.net-mvc - 控制器中的“重新路由”url请求