groovy 如何在JsonPathExtractor中提取复数值

e5nszbig  于 2022-11-01  发布在  其他
关注(0)|答案(2)|浏览(130)

下面是返回的示例json

[
"id":
[
    {
        "reports":
            [
                {
                    "metadata":
                        {
                            "materialName" : "materialName1"
                            "materialType" : "materialType1"    
                        },
                        "xvalue": null,
                        "yvalue": null,
                },
                {
                    "metadata":
                        {
                            "materialName" : "materialName2"
                            "materialType" : "materialType2"    
                        },
                        "xvalue": null,
                        "yvalue": null,
                },
            ],
            "someValue" : "someValue1"
            "id" : "id1"
    },
    "reports":
            [
                {
                    "metadata":
                        {
                            "materialName" : "materialName3"
                            "materialType" : "materialType3"    
                        },
                        "xvalue": null,
                        "yvalue": null,
                },
                {
                    "metadata":
                        {
                            "materialName" : "materialName4"
                            "materialType" : "materialType4"    
                        },
                        "xvalue": null,
                        "yvalue": null,
                },
            ],
            "someValue" : "someValue1"
            "id" : "id2"
  ]

]
我在JMeter的Json路径提取器中有以下Json表达式

$.data[0].materials[?(@.id)].reports[*].metadata['materialName','materialType']

对于json数组中的每个'id',上述表达式返回如下所示

materialName1, materialType1

materialName2, materialType2

materialName3, materialType3

materialName4, materialType4

但我希望提取“id”的值沿着“materialName”和“materialType”,如下所述

id1, materialName1, materialType1

id1, materialName2, materialType2

id2, materialName3, materialType3

id2, materialName4, materialType4

等等。
请帮帮我。
谢谢你,杰丁

pjngdqdw

pjngdqdw1#

添加JSR 223采样器并直接记录:

log.info(variable)

变量可以在任何采样器注解部分中使用**${variable}**进行解析,以用于测试目的。

zbdgwd5y

zbdgwd5y2#

JMeter提供了__logn()函数,允许将您想要的任何内容打印到jmeter.log文件
同样,如果JSON提取器返回〉1个匹配,JMeter将生成以下variables

var_1=foo
var_2=bar
...
var_matchNr=2

因此,您可以将它们打印到jmeter.log文件,如下所示:

1.upto(vars.get('var_matchNr') as int, { index ->
    log.info(vars.get('var_' + index))
})

如果要改为打印到STDOUT-请将log.info替换为println
有关JMeter中的Groovy脚本的更多信息:Apache Groovy: What Is Groovy Used For?

相关问题