JMeter - 在Beanshell Listener中访问TransactionController

时间:2012-10-25 12:46:03

标签: jmeter

我在测试计划中创建了一个BeanShell Listener元素,用于收集每个HttpRequest的SampleResult数据并发送给第三方软件。目前我的计划中有四个HttpRequests:

  1. 获取 - 点击登录页面
  2. 发布 - 将数据提交到登录页面
  3. 获取 - 点击设置会话的页面
  4. 获取 - 点击'主页'
  5. 步骤2和3是相关的并且顺序运行,因此从报告的角度来看基本上是“一步”。我围绕这两个元素创建了一个TransactionController,但我的Listener脚本似乎只能从这两个元素中的第二个元素中检索结果数据。基本上我希望我的脚本能够获得这两个报告步骤的总时间。

    有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我无法重现您的场景(使用JMeter 2.8)。以下是我的测试计划的样子:

Thread Group
  HTTP Request 1
  Transaction Controller
    HTTP Request 2
    HTTP Request 3
  HTTP Request 4
  Beanshell Listener

我的Beanshell听众有行 log.info(sampleResult.toString() + " - " + sampleResult.getLatency());

它记录(省略日志信息):

HTTP Request 1 - 143
HTTP Request 2 - 84
HTTP Request 3 - 83
Transaction Controller - 167
HTTP Request 4 - 93

看起来很有效