使用Loadrunner对IBM MQ进行性能测试.docx
- 文档编号:23469606
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:9
- 大小:18.72KB
使用Loadrunner对IBM MQ进行性能测试.docx
《使用Loadrunner对IBM MQ进行性能测试.docx》由会员分享,可在线阅读,更多相关《使用Loadrunner对IBM MQ进行性能测试.docx(9页珍藏版)》请在冰豆网上搜索。
使用Loadrunner对IBMMQ进行性能测试
使用Loadrunner对IBMMQ进行性能测试
发布时间:
2015-1-3010:
34 作者:
潦草白纸 来源:
51Testing软件测试网采编
字体:
小 中 大 |上一篇下一篇|打印 |我要投稿
四、测试脚本
以下为MQ发送测试脚本,利用此脚本只用根据相应测试需求,调整注释部分:
/*
*LoadRunnerJavascript.(Build:
_build_number_)
*
*ScriptDescription:
simpletestharnesstoPUTmessagesonaMQqueue
*
*/
importlrapi.lr;
importcom.ibm.mq.*;
importjava.util.HashMap;
importjava.util.Random;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
publicclassActions
{
//队列管理器
StringqueueMgrName="QMCCPS01";
//队列名
StringputQueueName="CNAPS_BPH";
//通道名
Stringchannel="SYSTEM.DEF.SVRCONN";
//消息
StringmsgBody="";
//ip地址
Stringhostname="10.40.2.16";
//端口号
intport=1601;
//字符集
intCCSID=819;
MQQueueManagerqueueMgr=null;
MQQueuegetQueue=null;
MQQueueputQueue=null;
MQPutMessageOptionspmo=newMQPutMessageOptions();
MQGetMessageOptionsgmo=newMQGetMessageOptions();
MQMessagerequestMsg=newMQMessage();
MQMessageresponseMsg=newMQMessage();
//?
?
?
?
?
?
?
?
?
publicintinit()throwsThrowable{
//Openaconnectiontothequeuemanagerandtheput/getqueues
try{
//AsvaluessetintheMQEnvironmentclasstakeeffectwhenthe
//MQQueueManagerconstructoriscalled,youmustsetthevalues
//intheMQEnvironmentclassbeforeyouconstructanMQQueueManager
//object.
MQEnvironment.hostname=hostname;
MQEnvironment.port=port;
MQEnvironment.CCSID=CCSID;
MQEnvironment.properties.put("transport","MQSeries");
//MQEnvironment.channel="SYSTEM.DEF.SVRCONN";
MQEnvironment.channel=channel;
queueMgr=newMQQueueManager(queueMgrName);
//Accesstheput/getqueues.Notetheopenoptionsused.
putQueue=queueMgr.accessQueue(putQueueName,49);
//getQueue=queueMgr.accessQueue(getQueueName,
//MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_OUTPUT);
}catch(Exceptione){
e.printStackTrace();
}
return0;
}
publicintaction()throwsThrowable{
//ThisisanXMLmessagethatwillbeputonthequeue.Coulddosome
//fancy
//thingswithXMLclasseshereifnecessary.
//Themessagestringcancontain{parameters}iflr.eval_string()is
//used.
//Clearthemessageobjectsoneachiteration.
requestMsg.clearMessage();
responseMsg.clearMessage();
//读取报文内容,并利用replace函数参数化报文编号
Stringreq=read("G:
\\大额贷记来账.xml");
Stringdata_msg="
StringmsgBody=req.replace("
//Createamessageobjectandputitontherequestqueue
try{
pmo.options=MQC.MQPMO_NEW_MSG_ID;//Thequeuemanagerreplaces
//thecontentsoftheMsgId
//fieldinMQMDwithanew
//messageidentifier.
//shouldbeputonthisqueue
requestMsg.report=MQC.MQRO_PASS_MSG_ID;//Ifareportorreplyis
//generatedasaresult
//ofthismessage,the
//MsgIdofthismessage
//iscopiedtothe
//MsgIdofthereport
//orreplymessage.
requestMsg.format=MQC.MQFMT_STRING;//Setmessageformat.The
//applicationmessagedata
//canbeeitheranSBCS
//string(single-byte
//characterset),oraDBCS
//string(double-byte
//characterset).
//requestMsg.messageType=MQC.MQMT_REQUEST;//Themessageisone
//thatrequiresareply.
lr.start_transaction("大额贷记来账");
requestMsg.writeString(msgBody);//messagepayload
MQMessageinMsg=newMQMessage();
inMsg.write(msgBody.getBytes("UTF-8"));
putQueue.put(inMsg,pmo);
lr.end_transaction("大额贷记来账",lr.PASS);
}catch(Exceptione){
e.printStackTrace();
}
/***
*//Gettheresponsemessageobjectfromtheresponsequeuetry{
*responseMsg.correlationId=requestMsg.messageId;//TheIdtobe
*matchedagainstwhengettingamessagefromaqueue
*gmo.matchOptions=MQC.MQMO_MATCH_CORREL_ID;//Themessagetobe
*retrievedmusthaveacorrelationidentifierthatmatchesthevalue
*oftheCorrelIdfieldintheMsgDescparameteroftheMQGETcall.
*gmo.options=MQC.MQGMO_WAIT;//Theapplicationwaitsuntilasuitable
*messagearrives.gmo.waitInterval=60000;//timeoutinms
*getQueue.get(responseMsg,gmo);
*
*//Checkthemessagecontentbyte[]responseMsgData=
*responseMsg.readStringOfByteLength
*(responseMsg.getTotalMessageLength()).getBytes();Stringmsg=new
*String(responseMsgData);lr.output_message(msg);//fordebugging.
*Disablethisforaloadtest.//TODO:
addyourownmessagechecking
*hereusingstringfunctions.//IhavefoundthatextractingXML
*fieldsandcomparingthem(ratherthan//comparingthewholemessage
*bodyorsubstrings)ismoreresistanttochange.//Ifnomatchis
*found,thenlr.error_message()andlr.exit().}catch(Exceptione){
*e.printStackTrace();lr.error_message("Errorreceivingmessage.");
*lr.exit(lr.EXIT_VUSER,lr.FAIL);}
*
*lr.end_transaction("test_message",lr.AUTO);
*/
return0;
}//endofaction
//?
?
?
?
?
?
?
publicintend()throwsThrowable{
//Closealltheconnections
try{
putQueue.close();
//getQueue.close();
queueMgr.close();
}catch(Exceptione){
e.printStackTrace();
}
return0;
}//endofend
publicstaticStringread(StringfileName){
Stringreq="";
FileInputStreamin=null;
try{
in=newFileInputStream(fileName);
intlen=in.available();
byte[]b=newbyte[len];
in.read(b);
req=newString(b);
in.close();
}catch(IOExceptione){
e.printStackTrace();
}
returnreq;
}
}
MQ是一个多义词,请在下列义项上选择浏览(共12个义项)
添加义项
∙▪即时通讯软件MQ
∙▪IBMMQ
∙▪麦考瑞大学MQ
∙▪德商(MQ)
∙▪钱商(MQ)
∙▪心商(MQ)
∙▪记忆商(MQ)
∙▪马提尼克岛(MQ)
∙▪熟商(MQ)
∙▪MQ字幕组
∙▪度量单位
∙▪MagicQuant程序化交易平台(MQ)
全部展开收起
收藏
查看我的收藏
269有用+1已投票
214
MQ
编辑锁定
MQ传递主干,在世界屡获殊荣。
它帮您搭建企业服务总线(ESB)的基础传输层。
IBMWebSphereMQ为SOA提供可靠的消息传递。
它为经过验证的消息传递主干,全方位、多用途的数据传输,并帮助您搭建企业服务总线的传输基础设施。
消息队列(MQ)是一种应用程序对应用程序的通信方法。
应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。
消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。
排队指的是应用程序通过队列来通信。
队列的使用除去了接收和发送应用程序同时执行的要求。
IBMWebSphereMQ支持两种不同的应用程序编程接口:
Java消息服务(JMS)和消息队列接口(MQI)。
在IBMWebSphereMQ服务器上,JMS绑定方式被映射到MQI。
应用程序直接与其本地队列管理器通过使用MQI进行对话,MQI是一组要求队列管理器提供服务的调用。
MQI的引人之处是它只提供13次调用。
这意味着对于应用程序编程员它是一种非常易于使用的接口,因为大部分艰苦工作都将透明完成的。
IBMWebSphereMQ产品支持应用程序通过不同组件如处理器、子系统、操作系统以及通信协议的网络彼此进行通信
中文名
MQ
提 供
强大、安全、稳定的消息
作 用
SOA连通性提供可靠
类 型
应用程序
目录
1.1功能
2.2操作程序
功能编辑
·跨任何商业IT系统连接应用程序和Web服务,提供完整的JMS(Java消息服务)支持,包括发布-订阅。
·对Web服务的整合化支持。
·基于Eclipse的新工具—MQExplorer,适用于Windows和Intel(x86),支持整个消息传递主干的远程和安全配置。
·WebSphereMQV6.0.2增强了JMS和安全性,构建在WebSphereMQV6.0中引入的新配置工具之上,该工具以新Eclipse插件的形式提供,可增强您的MQExplorer控制台。
·与WebSphereApplicationServer的消息传递服务无缝互操作。
·支持行业标准安全套接字层(SecureSocketsLayer,SSL)安全性,并提供扩展安全版本来获得高级安全特性。
·支持推进现有FTP基础设施,确保通过WebSphereMQ进行可靠、安全的文件传输。
·支持的操作系统:
AIX、HPUnix、i5/OS、Linux、SunSolaris、Windows、z/OS。
操作程序编辑
第一步是让应用程序与队列管理器连接。
它通过MQConnect调用来进行此连接。
下一步使用MQOpen调用为输出打开一个队列。
然后应用程序使用MQPut调用将其数据放到队列上。
要接收数据,应用程序调用MQOpen调用打开输入队列。
应用程序使用MQGet调用从队列上接收数据。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用Loadrunner对IBM MQ进行性能测试 使用 Loadrunner IBM MQ 进行 性能 测试