loadrunner 中的控制器

Controller in loadrunner

我打算创建一个订单输入交易,我将使用 30 个 vuser 运行 它并将订单号保存在参数列表中(我希望这是可能的)。

现在,我需要创建一个交易来验证订单,使用我在上面创建的参数列表,我的问题是如果我使用 30 个虚拟用户,他们将如何选择订单号?启动 30 个 vuser 后,两个用户选择相同的订单号是否可能发生冲突?

请解释这是如何工作的,以及实现上述任务的最佳解决方案。

您可以试试 LoadRunner VTS 组件。它允许您保存参数。如果你想避免这些参数的冲突,你可以从 VTS 中检索一个参数。这意味着读取并删除 table 的第一行。如果需要,您可以将其附加在 table 的末尾。可以从 VuGen Help->Additional Compoenents->Virtual Table Server

找到更多详细信息

如果将参数写入文件,将会遇到各种问题

  1. 管理多个用户对同一文件的锁定,可能跨负载生成器。仅此一项就可以将这个文件变成测试的瓶颈,因为每个人都在等待对文件锁定的仲裁访问
  2. 参数文件在测试开始时加载到 RAM 中,因此您将无法在同一测试的上下文中使用参数。

解决方法:您可以在同一业务流程中使用简单的 web_reg...() 函数进行验证。这将是最轻量级的方法。

如果您需要在用户 A 创建和用户 B 验证的虚拟用户之间共享,那么您需要一个队列或服务来传递信息。在这种情况下,HP 提供虚拟 Table 服务器作为此类操作的服务。但是,您可以利用任何外部队列服务,甚至使用托管服务(例如 Amazon Simple Queuing Service)在用户之间进行这种类型的存储,其中一个用户 "pushes" 数据和另一个 "pops" 数据验证。

在 Loadrunner 中,您不能在测试执行期间动态更新参数列表。(原因:参数文件将在测试执行期间保存在 Load agent 机器中)

您可以将 "Order Entry" 保存到一个简单的文本文件中。 在 Verify Order 中,您可以创建参数类型为 "Vuser ID" 的参数 "paramname" 并读取与 Vuser ID 有关的文件数据。

例如:如果 "paramname" 值为 2,则从您之前创建的文本文件中读取行号 2。