代码之家  ›  专栏  ›  技术社区  ›  Denis Makarenko

如何动态更改JMeter摘要报告中的行标签?

  •  1
  • Denis Makarenko  · 技术社区  · 7 年前

    在我的JMeter项目中,我有一个测试片段,它由一个事务控制器组成,该事务控制器反过来以一个非常复杂的模式执行一些HTTP调用,我希望在所有测试中重用这些调用(在下面的示例中,我将其简化为一个调用)。我对整体上测量这些HTTP调用的性能很感兴趣,所以我选中了“生成父样本”以实现它。

    然后从多个胎面组引用测试片段,使用不同参数运行单个测试(在简化示例中只有一个)。

    然后使用摘要报告聚合测试结果,然后Jenkins性能插件使用这些聚合数据显示性能趋势并通知开发人员性能回归。

    这就是问题所在。生成的摘要报告中的行具有相同的标签。它阻止了性能插件正确地比较测试结果,基本上是随机聚合的结果被匹配。

    摘要报告中的标签字段是从事务控制器的名称属性派生的。为了使这些名称唯一,我尝试定义一个用户变量( $TRANSACTION_NAME )在线程组中,并将其用于事务控制器中的名称。

    不幸的是,它不起作用。摘要报告使用 $交易名称 文本作为标签而不是其值,即 trans_1

    User Variables

    Transaction Controller Name

    Summary Report

    有没有办法解决这个问题,并以某种方式动态地更改事务控制器名称?或者,也许,告诉汇总报告在汇总结果时使用不同的var值作为标签?

    2 回复  |  直到 7 年前
        1
  •  1
  •   UBIK LOAD PACK    7 年前

    用户变量语法为:

    ${ValNe}

    不使用用户定义的变量,而是使用带有用户参数的流控制操作作为子变量,并在此操作中定义变量值

    如果你想正确地学习JMeter, book 会帮助你的。

        2
  •  0
  •   Dmitri T    7 年前
    1. 您应该以以下形式引用jmeter变量: ${TRANSACTION_NAME} 或使用 __V() function 喜欢 ${__V(TRANSACTION_NAME)}
    2. 我觉得你不应该打勾 Include duration of timer and pre-post processors in generated sample 盒子,这是假的 JMeter 2.11 . 默认情况下,JMeter不会将前/后处理器和计时器的持续时间添加到示例结果中,这是事务控制器应该做的事情,否则可能会得到错误的负结果。我相信你应该使用前/后处理器 parameterisation/correlation 以及模拟用户“思考时间”的计时器,该时间应该从JMeter度量中排除,因为它与实际的测试应用程序性能没有任何共同之处。例如,如果您的响应时间是1秒,并且请求之间有5秒的“睡眠时间”,那么JMeter将报告6秒的响应时间,这是实际时间的6倍,这可能会令人困惑。