从jmeter中的json提取并添加多个值

时间:2019-04-23 21:47:40

标签: json groovy jmeter

我正在使用json提取器从json响应中提取多个值。我的目标是增加所有这些价值。我已经尝试过使用foreach控制器,但是它对我不起作用。

enter image description here

我有一个调试示例,确认我正在检索所有值。我需要获取所有这些值中的一些。取值范围是0到几千。有没有一种简单的方法来计算总和。

1 个答案:

答案 0 :(得分:1)

假设您具有这样的JSON结构

{
    "body": [
        { "count": 0 },
        { "count": 23 },
        { "count": -1 },
        { "count": 20 },
        { "no_count_here": "really" }
    ]
}

然后,您的后处理器将添加一个名为countFromResponse的变量,其内容为0,23,-1,20。要对这些值求和,必须在每个逗号处分割字符串,将字符串摘要转换为Integer值,然后将它们全部求和,然后将其转换回字符串。然后可以将该值存储在另一个名为countFromResponse_SUM的变量中。

这可以通过使用以下groovy代码的JSR223后处理器来实现:

overall = vars.get("countFromResponse_ALL")
    .split(",")
    .collect { Integer.valueOf(it) }
    .sum()
    .toString()
vars.put("countFromResponse_SUM", overall)

转换回字符串很重要,因为JMeter中的所有普通变量都将被视为字符串。