在jmeter中从json提取和添加多个值

在jmeter中从json提取和添加多个值,json,groovy,jmeter,Json,Groovy,Jmeter,我正在使用json提取器从json响应中提取多个值。我的目标是增加所有这些价值。我尝试过使用foreach控制器,但它对我不起作用 我有一个调试示例,确认我正在检索所有值。我需要得到所有这些值中的一些。这些值的范围从0到数千。有没有一种简单的方法来计算总和。假设您有这样一个JSON结构 { "body": [ { "count": 0 }, { "count": 23 }, { "count": -1 }, { "coun

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


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

假设您有这样一个JSON结构

{
    "body": [
        { "count": 0 },
        { "count": 23 },
        { "count": -1 },
        { "count": 20 },
        { "no_count_here": "really" }
    ]
}
然后,后处理器将添加一个名为
countFromResponse
的变量,其内容为
0,23,-1,20
。要对这些值求和,必须在每个逗号处拆分字符串,将字符串片段转换为整数值,然后将它们全部求和,然后将其转换回字符串。然后,该值可以存储在另一个名为
countfromsponse\u SUM
的变量中

这可以使用JSR223后处理器来完成,该后处理器使用以下groovy代码:

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

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

假设您有这样的JSON结构

{
    "body": [
        { "count": 0 },
        { "count": 23 },
        { "count": -1 },
        { "count": 20 },
        { "no_count_here": "really" }
    ]
}
然后,后处理器将添加一个名为
countFromResponse
的变量,其内容为
0,23,-1,20
。要对这些值求和,必须在每个逗号处拆分字符串,将字符串片段转换为整数值,然后将它们全部求和,然后将其转换回字符串。然后,该值可以存储在另一个名为
countfromsponse\u SUM
的变量中

这可以使用JSR223后处理器来完成,该后处理器使用以下groovy代码:

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

转换回字符串非常重要,因为JMeter中的所有正常变量都将被视为字符串。

谢谢!太好了,谢谢!这太完美了。