如何在Jmeter中使用groovy在json中传递字符串数组

如何在Jmeter中使用groovy在json中传递字符串数组,json,groovy,jmeter,performance-testing,Json,Groovy,Jmeter,Performance Testing,我想使用groovy在Jmeter中将下面提到的json作为原始主体传递。除了过滤器阵列之外,其他一切都正常工作。如何使用groovy在Jmeter中传递字符串数组 必需的Json { "Request": { "request_id": "1121589496445226106", "request_timestamp": "14122017140114", "source_node": "CRM", "dataset":

我想使用groovy在Jmeter中将下面提到的json作为原始主体传递。除了过滤器阵列之外,其他一切都正常工作。如何使用groovy在Jmeter中传递字符串数组

必需的Json

{
    "Request": {
        "request_id": "1121589496445226106",
        "request_timestamp": "14122017140114",
        "source_node": "CRM",
        "dataset": {
            "param": [
                {
                    "id": "service_id",
                    "value": "97694010132"
                },
                {
                    "id": "entity_id",
                    "value": "1"
                }
            ],
            "filters": [
                "service",
                "account",
                "profile"
            ]
        }
    }
}
代码示例是

import groovy.json.JsonBuilder

def json = new JsonBuilder()

class Tag {String tag; String tagName }
List<Tag> tagsList = new ArrayList<>();
tagsList.add(new Tag(tag:vars.get("serviceid"), tagName:"service_id"))
tagsList.add(new Tag(tag:"1", tagName:"entity_id"))
json {
    "Request"
    {
            request_id "1121589496445226106"
            source_node "CRM"
            request_timestamp "14122017140114"
            "dataset"
            {
                param tagsList.collect { tag ->
        ["id"    : tag.tagName,
         "value": tag.tag]
                }
            }
    }
}
sampler.addNonEncodedArgument("",json.toPrettyString(),"")
sampler.setPostBodyRaw(true) 
import groovy.json.JsonBuilder
def json=new JsonBuilder()
类标记{字符串标记;字符串标记名}
List tagsList=new ArrayList();
tagsList.add(新标记(标记:vars.get(“serviceid”),标记名:“service\u id”))
tagsList.add(新标记(标记:“1”,标记名:“实体id”))
json{
“请求”
{
请求id“1121589496445226106”
源节点“CRM”
请求时间戳“14122017140114”
“数据集”
{
param tagsList.collect{tag->
[“id”:tag.tagName,
“值”:tag.tag]
}
}
}
}
sampler.addNonEncodedArgument(“,json.toPrettyString(),”)
采样器。setPostBodyRaw(真)

我想传递json中的过滤器数组。

使用下面的代码可以获得所需的json

import groovy.json.JsonBuilder

def json = new JsonBuilder()

class Tag {String tag; String tagName }
List<Tag> tagsList = new ArrayList<>();
tagsList.add(new Tag(tag:vars.get("serviceid"), tagName:"service_id"))
tagsList.add(new Tag(tag:"1", tagName:"entity_id"))
json {
    "Request"
    {
            request_id "1121589496445226106"
            source_node "CRM"
            request_timestamp "14122017140114"
            "dataset"
            {
                param tagsList.collect { tag ->
        ["id"    : tag.tagName,
         "value": tag.tag]
                }
                filters'service','account','profile'
            }
    }
}
sampler.addNonEncodedArgument("",json.toPrettyString(),"")
sampler.setPostBodyRaw(true) 
import groovy.json.JsonBuilder
def json=new JsonBuilder()
类标记{字符串标记;字符串标记名}
List tagsList=new ArrayList();
tagsList.add(新标记(标记:vars.get(“serviceid”),标记名:“service\u id”))
tagsList.add(新标记(标记:“1”,标记名:“实体id”))
json{
“请求”
{
请求id“1121589496445226106”
源节点“CRM”
请求时间戳“14122017140114”
“数据集”
{
param tagsList.collect{tag->
[“id”:tag.tagName,
“值”:tag.tag]
}
筛选“服务”、“帐户”、“配置文件”
}
}
}
sampler.addNonEncodedArgument(“,json.toPrettyString(),”)
采样器。setPostBodyRaw(真)

Groovy不是Groovy!!