0

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

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

老实说,我只是问,因为我懒得测试这个临时的。

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

4

1 回答 1

1

好的,既然我自己找到了答案,那么分享它们是公平的:

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

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

我们的解决方案是创建一个愚蠢的 QTP 调用者脚本 A,它调用第二个 QTP 测试 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 可以更新为通常的方式(因为它总是会被部署)。

于 2011-01-04T09:16:38.477 回答