QTP LoadAndRunAction -- 调用者运行结果中被调用者部分的事务时间?

问题描述 投票:0回答:1

如果我使用

LoadAndRunAction
从另一个测试 A 调用操作 X,被调用操作中收集的事务时间是否正确报告?

即如果我将这样的调用者脚本 A 插入到 LoadRunner 场景中,LoadRunner 的结果报告是否会包括测试 A 和操作 X 中测量的事务时间?

老实说,我只是问一下,因为我懒得测试这个临时项目。

背景: 我们有一些使用 QTP 脚本来模拟 GUI 用户活动的 LR 场景。这些 QTP 脚本非常大,并且一次又一次地部署到每个负载生成器。这个想法是手动部署一次大型 QTP 测试,然后编写一个调用大型测试的紧凑型 QTP 测试,并将该紧凑型测试插入到 LR 场景中。

load-testing qtp loadrunner
1个回答
1
投票

好吧,现在我自己找到了答案,分享它们是公平的:

LoadAndRunAction
未正确报告其事务时间,调用者看不到被调用者中测量的事务。

但是,您可以使用传统的操作调用来调用目标操作。然而,除了最琐碎的被调用者之外,这不起作用,因为 LoadRunner Controller 以某种方式搞乱了调用者和被调用者之间的依赖关系,试图将调用者的东西部署到不存在的负载生成器。

我们的解决方案是创建一个愚蠢的 QTP 调用程序脚本 A,它调用第二个 QTP 测试 B,该测试 B 不执行任何操作,只是调用“真正的”QTP 测试 C,所有这些都使用“插入对外部操作的调用”。那就是:

  • 使用已经拥有C的QTP机器开发A和B
  • 将A和B复制到控制器
  • 将 A 插入场景中
  • 将 B 和 C 预部署(即仅复制)到所有负载生成器

结果:LoadRunner 成功将 A 部署到负载生成器并执行。 A 调用 B 测试,B 测试又调用 C。C 执行事务,这些事务通过 B 和 A 报告给场景的运行结果。任务完成。 (当然,B和C需要存储在所有机器上完全相同的路径中,并且A和B中的动作引用必须基于绝对路径,而不是相对路径)。

当然,修改 B 或 C 时必须小心。每次修改都必须手动分发到所有其他负载生成器。 A 可以更新为通常的方式(因为它总是会被部署)。

© www.soinside.com 2019 - 2024. All rights reserved.