loadrunner使用java 实现MQ协议发收脚本
来源:互联网 发布:日本好听的歌 知乎 编辑:程序博客网 时间:2024/06/06 16:47
loadrunner使用java 实现MQ协议发收脚本
/*************************************************脚本编写信息描述:项目名称:JAVA操作MQ消息队列示例脚本功能:发送、获取消息编码语言:JAVA**************************************************/import java.io.EOFException;import java.io.IOException;import com.ibm.mq.MQC;import com.ibm.mq.MQEnvironment;import com.ibm.mq.MQException;import com.ibm.mq.MQGetMessageOptions;import com.ibm.mq.MQMessage;import com.ibm.mq.MQPoolToken;import com.ibm.mq.MQPutMessageOptions;import com.ibm.mq.MQQueue;import com.ibm.mq.MQQueueManager;import lrapi.lr;public class Actions{privateMQQueuemqQueue;privateMQQueueManagerqMgr = null; private String hostName = "196.188.190.20"; //远程MQ主机IP private String channel = "TEST.SVRCONN"; //远程MQ服务器连接通道 private String qManager = "TQM_test"; //远程队列管理器名称 private String sendQName = "test.REQ" ; //用于发送消息的远程队列 private String recvQName = "test.RES";//用于接收消息的本地队列privateintqmPort = 1414; privateintqmCCSID = 1208;public String getMsg() { //获得消息byte[] data = null; MQException.log = null;try { //创建队列管理的连接 //设置队列选项intopenOptions = MQC.MQOO_INPUT_SHARED | MQC.MQOO_FAIL_IF_QUIESCING;//MQC.MQOO_INPUT_AS_Q_DEF; //指定要打开的队列mqQueue = this.qMgr.accessQueue(this.recvQName, openOptions); //设置取消息时的消息选项MQGetMessageOptionsgmo = new MQGetMessageOptions();gmo.options = gmo.options + MQC.MQGMO_SYNCPOINT;gmo.options = gmo.options + MQC.MQGMO_WAIT;gmo.options = gmo.options + MQC.MQGMO_FAIL_IF_QUIESCING;gmo.waitInterval = 30000; //创建一个的消息MQMessageinMsg = new MQMessage(); //从队列中取关联消息ID的消息inMsg.correlationId = lr.eval_string("<P_vuid><P_realdate>").getBytes();mqQueue.get(inMsg, gmo); //从消息中读取数据并输出data = new byte[inMsg.getMessageLength()];inMsg.readFully(data,0,inMsg.getMessageLength()); //提交队列管理的连接qMgr.commit(); //移除连接池中的连接 //MQEnvironment.removeConnectionPoolToken(token); } catch (EOFException e) {e.printStackTrace(); } catch (MQException e) {e.printStackTrace(); } catch (IOException e) {e.printStackTrace(); } finally {try {if (mqQueue != null) {mqQueue.close(); } } catch (MQException ex) {System.err.print(ex); } } //lr.output_message(new String(EBCDICToASCII(data)));return new String(CoderUtil.EBCDICToASCII(data)); } public void putMsg(String message) {//发送消息 MQException.log = null;try { //设置队列选项intopenOptions = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING; //指定要打开的队列mqQueue = this.qMgr.accessQueue(this.sendQName, openOptions);//设置放消息时的消息选项 MQPutMessageOptions mpmo = new MQPutMessageOptions(); //创建新的消息 MQMessage mqMessage = new MQMessage(); //设置消息id变量,用于消息关联 mqMessage.messageId = lr.eval_string("<P_vuid><P_realdate>").getBytes(); //将数据放入消息缓冲区 mqMessage.writeString(CoderUtil.ASCIIToEBCDIC(message)); //把消息写到指定的队列中 mqQueue.put(mqMessage, mpmo); //提交队列管理的连接 this.qMgr.commit(); } catch (MQException ex) { System.out.println("Error Code : " + ex.reasonCode); ex.printStackTrace();} catch (java.io.IOException ex) {ex.printStackTrace(); } catch (Exception ex) {ex.printStackTrace(); } finally {try {if (mqQueue != null) {mqQueue.close(); } } catch (MQException ex) {System.err.print(ex); } }}public int init() throws Throwable { //设置MQ环境变量MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRANSPORT_MQSERIES);MQEnvironment.CCSID = this.qmCCSID; //设置CCSIDMQEnvironment.hostname = this.hostName; //MQEnvironment.channel = this.channel;MQEnvironment.port = this.qmPort; this.qMgr=new MQQueueManager(this.qManager); //建立MQ连接return 0;}//end of initpublic int action() throws Throwable { String result = "error";try { String srcStr = "<P_bnkno>";lr.start_transaction("test");putMsg(lr.eval_string(srcStr)); //lr.output_message(ASCIIToEBCDIC(srcStr)); //lr.output_message(getMsg());result = getMsg(); //lr.output_message(lr.eval_string(result.substring(241,245)));if(result.substring(241,245).equals("0000")){lr.end_transaction("test",lr.PASS); } else {lr.end_transaction("test",lr.FAIL); //lr.output_message("发送字符串:"+lr.eval_string(srcStr)); //lr.output_message("返回字符串:"+lr.eval_string(result));lr.error_message(“错误码是:"+result.substring(241,245)); //String outStr = new String(result.getBytes("UTF-8"),"ASCII");// putMsg(outStr); // String result2 = new String(srcStr.getBytes("ASCII","UTF-8")); //lr.output_message("返回字符串:"+outStr);} } catch (Exception e) {e.printStackTrace(); }return 0;}//end of actionpublicint end() throws Throwable {if (this.qMgr != null) {this.qMgr.close();this.qMgr.disconnect();}return 0;}//end of end}
0 0
- loadrunner使用java 实现MQ协议发收脚本
- loadrunner使用java协议制作服务器接口测试脚本
- 使用loadrunner javavuser协议开发脚本实战
- loadrunner之java协议脚本编写
- LoadRunner中Java Vuser协议脚本开发
- Loadrunner中java Vuser协议脚本开发
- 【Loadrunner】Web协议脚本转换为Java Vuser脚本
- 使用eclipse开发LoadRunner java 脚本
- 使用LoadRunner 编写JAVA 测试脚本
- 使用LoadRunner 编写JAVA 测试脚本
- 使用LoadRunner录制脚本时如何选择合适的协议?
- 使用LoadRunner录制脚本时如何选择合适的协议
- 使用LoadRunner录制脚本时如何选择合适的协议?
- 使用LoadRunner录制脚本时如何选择合适的协议
- loadrunner脚本编写~dubbo协议(java版)
- LoadRunner JAVA Vuser协议开发性能测试脚本 1
- LoadRunner脚本中的协议选择
- LoadRunner脚本中的协议选择
- 编译LineageOS
- 10 结构类型
- Max Sum Plus Plus
- JAVA-BigDecimal
- Java内存管理一
- loadrunner使用java 实现MQ协议发收脚本
- java中讲讲BufferedOutputStream的用法,举例?
- Java反射
- TensorFlow笔记之常见七个参数
- Java IO流之文件流
- POJ1651 Multiplication Puzzle —— DP 最优矩阵链乘
- zookeeper Curator 场景应用
- 朴素贝叶斯算法
- nodejs镜像配置