使用 LoadRunner 测试服务器进程

Posted

技术标签:

【中文标题】使用 LoadRunner 测试服务器进程【英文标题】:Using LoadRunner to Test Server Processes 【发布时间】:2008-12-18 16:32:11 【问题描述】:

我们目前使用 LoadRunner 来测试我们的 Web 应用程序的性能,但我们也有一些服务器端进程需要测试。

背景:

我们将这些流程称为我们的“引擎”。一个引擎通过轮询 IBM WebSpere MQ 队列的消息来接收消息。它从队列中取出一条消息,对其进行处理,然后将结果放入出站队列。我们目前通过 TCL 脚本测试此引擎,该脚本读取包含消息的文件,将消息放入入站队列,然后轮询出站队列以获取结果。

另一个引擎通过网络服务接收消息。 Web 服务将消息写入我们数据库中的表中。引擎轮询数据库表中的新消息,获取一条消息并对其进行处理,然后将结果放回数据库中。我们目前通过一个 VBScript 脚本测试这个引擎,该脚本读取一个包含消息的文件,将消息发送到 Web 服务,然后继续查询 Web 服务以获取结果,直到它准备就绪。

问题:

我们希望取消 TCL 和 VBScript 脚本并在 LoadRunner 上实现标准化,以便我们拥有一个工具来管理我们所有的性能测试。

    我知道 LoadRunner 支持“开箱即用”的 Web 服务协议,但我不知道如何使用它。有谁知道如何使用 LoadRunner 测试 Web 服务的任何示例? Lo​​adRunner 是否有用于 MQ 的协议?是否可以使用 LoadRunner Vuser 将负载(放入消息)驱动到 MQ 队列中?我们是否需要从惠普或其他供应商处购买东西才能做到这一点?

谢谢:)

【问题讨论】:

【参考方案1】:

在包含的软件中有一个LoadRunner插件,用于与MQ系列接口,将消息直接放入队列中。也完全支持 Web 服务,也支持 VBScript,也许使用 QTPro 的脚本和 LoadRunner 中的 GUI 用户? 科林。

【讨论】:

【参考方案2】:

对于 #1,作为 Web 服务脚本的替代方案,您可以尝试录制 Windows 套接字脚本。我使用 LoadRunner 来记录 winsock 脚本来测试一些(Java)API。我所做的是编写一个非常简单的 Java API 客户端,然后从 Windows 批处理文件中执行它。在 VUGen 中录制 LR 脚本时,该批处理文件将被引用为可执行文件。

我不确定 VUGen 是否可以加载 VBScript 文件进行录制,但您可以尝试。否则,您可以尝试将您的 VBScript 包装在一个可由 VUGen 运行的批处理文件中。

当 VUGen 录制 winsock 脚本时,它基本上是在监视您正在录制的进程的网络通信。完成录制后,它将在“data.ws”工作表中生成网络数据转储,您可以使用 VUGen 查看和编辑该工作表。您可以为负载测试参数化此数据工作表。

【讨论】:

【参考方案3】:

可以在 LoadRunner 中编写 SOA 请求并解析响应。 请参阅 wilsonmar.com/1lrscript.htm。

但请记住,为功能测试开发的 TCL 和 VBScript 与 LoadRunner 脚本具有不同的架构和范围。 QTP 和 WinRunner 接管应用程序。

LoadRunner 脚本专注于通过网络交换数据。在无头 SOA XML 的情况下,这种架构区别并不重要。

但是,从 GUI 维护 VBscript 可能更容易,因为在 LoadRunner 中创建 SOA 脚本需要比大多数 MQ 开发人员更深入地了解消息格式。

【讨论】:

【参考方案4】:

您确实有三种使用 LoadRunner 从 MQ 队列推送和弹出消息的路径

(1) MQTester。这是与 LoadRunner 一起使用的本机 MQ 协议插件 (2)温索克。最好将 Winsock 的开发描述为与从胡椒粉中挑选蝇粪极其相似。乏味,但最终非常有益。开箱即用,除了许可证更新(可能)之外,不需要额外的插件 (3) JMS 使用 Java 虚拟用户,请参阅。 http://en.wikipedia.org/wiki/Java_Message_Service 。您最终会在 LoadRunner 的 Java 模板虚拟用户中使用一个小型 Java 程序。您将不得不处理与 LoadRunner 相关的所有 Java 黑魔法方面,但是一旦确定了发布和安装细节的组合,您就可以使用虚拟相同的代码发布到几乎任何 JMS 提供程序(不仅仅是 MQ)部分连接出厂设置已更改。

您应该也可以使用 Web 服务虚拟用户执行 JMS,但我尚未测试该配置。查看运行时设置的 JMS 部分。

【讨论】:

好的,我同意你从胡椒粉中挑选蝇粪很乏味,但我从没想过它会是有益的。事实上,我以前从未在任何情况下想象过这种活动。谢谢你拓宽了我的视野! :-)

以上是关于使用 LoadRunner 测试服务器进程的主要内容,如果未能解决你的问题,请参考以下文章

Python多进程

loadrunner性能测试,在并发10个用户的情况下,sqlserver服务器cpu平均在80%以上,如何解决

使用LoadRunner怎么进行性能测试

loadrunner中如何添加对服务器系统资源的监控

软件测试_测试工具_Loadrunner_IP欺骗

要用loadrunner做一个B/S结构软件的登录功能的测试,负载测试和压力测试的场景分别怎么设计?请详述!