我是 TIBCO 的新手,正在尝试使用 loadrunner 与 EMS Server 进行通信。
客户端和服务器之间的通信通常通过 TCP 进行。
我有以下详细信息:
- 网址:tcp://someserver.com:port
- 用户名:
- 密码:
- 队列连接工厂:QueueConnectionFactory
有没有人尝试使用 Loadrunner 在 EMS 服务器上发布消息。
请建议我如何开始编写脚本?
我是 TIBCO 的新手,正在尝试使用 loadrunner 与 EMS Server 进行通信。
客户端和服务器之间的通信通常通过 TCP 进行。
我有以下详细信息:
有没有人尝试使用 Loadrunner 在 EMS 服务器上发布消息。
请建议我如何开始编写脚本?
在谷歌上搜索并尝试使用不同的协议后,我发现了一种在 EMS 服务器上发布消息的简单方法。
由于 EMS 是 JMS(java 消息服务)的扩展,我们必须使用 jms 协议与 EMS 进行通信。
在 VUGEN 中使用 java vuser 是最好的选择。
以下是您可以粘贴到 actions.java 文件中的代码。
public int action() throws Throwable {
String serverUrl = "tcp://localhost:7222";
String userName = "admin";
String password = "admin";
String queueName = "your queue name";
try {
System.out.println("Sending JMS message to server " + serverUrl + "...");
QueueConnectionFactory factory = new TibjmsQueueConnectionFactory(serverUrl);
QueueConnection connection = factory.createQueueConnection(userName, password);
QueueSession session = connection.createQueueSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);
// Use createQueue() to enable sending into dynamic queues.
Queue senderQueue = session.createQueue(queueName);
QueueSender sender = session.createSender(senderQueue);
/* publish messages */
TextMessage jmsMessage = session.createTextMessage("your message");
//String text = (String) data.elementAt(i);
//jmsMessage.setText(text);
sender.send(jmsMessage);
System.out.println("Sent message!");
connection.close();
} catch (JMSException e) {
e.printStackTrace();
System.exit(0);
}
return 0;
}//end of action
我相信你应该使用 tibjmsnaming:// 而不是 tcp。并使所需的 JMS/EMS 库在路径中可用。
您应该使用 WebServices 模板。我记得很久以前就向 Load runner 发布消息。
您有许多通往任何 JMS 兼容目标的路径。有些使用网络服务协议。我的偏好是利用适当的连接工厂元素的小型 Java 模板虚拟用户。您的队列解决方案很可能还有一个 C 级接口,可以合并到 C 模板虚拟用户中。您可以选择使用 C++/C#/VB 在 Visual Studio 中开发的虚拟用户(请参阅文档、高级主题)。如果您有一个现有的客户端,您甚至可以使用 Winsock 从队列中记录“推送”和“弹出”,并操作适当的缓冲区进行练习——我过去曾在 MQ 中使用过这条路径。
因此,许多选项取决于您的技能、许可的虚拟用户类型等...