I got an opportunity to work on IBM MQ testing recently. Since, i am new to this testing. i have referred multiple blogs in Stackoverflow to prepare our code. Currently i am referring following blog code to inject my XML payloads + Rfh2 header values(How to send message with RFH2 format?). Actually i am able to inject the request but i cannot see any response in listener.
I have tried adding below code snippet, but i am getting "com.ibm.mq.MQMessage@1d3ef24d" as output.
SampleResult.setResponseData(message.toString())
SampleResult.setDataType( org.apache.jmeter.samplers.SampleResult.TEXT )
SampleResult.setLatency( stop.toEpochMilli() - start.toEpochMilli() )
We require message id, put time, put date details in the response. Could someone please help how to extract these values.
import com.ibm.mq.MQAsyncStatus
import com.ibm.mq.MQMessage
import com.ibm.mq.MQPutMessageOptions
import com.ibm.mq.MQQueueManager
import com.ibm.mq.constants.CMQC
import com.ibm.mq.constants.MQConstants
import com.ibm.mq.headers.MQRFH2
def mqProps = new Hashtable<String, Object>()
mqProps.put(MQConstants.CHANNEL_PROPERTY, 'xxxxxxxxx')
mqProps.put(MQConstants.PORT_PROPERTY, 1414)
mqProps.put(MQConstants.HOST_NAME_PROPERTY, 'XXXXXXXXX')
def qManager = 'QM1'
def queueName = 'DEV.QUEUE.1'
def qMgr = new MQQueueManager(qManager, mqProps)
def openOptions = MQConstants.MQOO_OUTPUT | MQConstants.MQOO_INPUT_AS_Q_DEF
def queue = qMgr.accessQueue(queueName, openOptions)
def pmo = new MQPutMessageOptions()
pmo.options = MQConstants.MQPMO_ASYNC_RESPONSE
def message = new MQMessage()
message.format = CMQC.MQFMT_RF_HEADER_2
def rfh2 = new MQRFH2()
rfh2.setEncoding(CMQC.MQENC_NATIVE)
rfh2.setCodedCharSetId(CMQC.MQCCSI_INHERIT)
rfh2.setFormat(CMQC.MQFMT_STRING)
rfh2.setNameValueCCSID(1208)
rfh2.setFieldValue('usr', 'Test', 'Country')
rfh2.write(message)
message.writeString('''${request_payload}''')
queue.put(message, pmo)
queue.close()