【问题标题】:How to pass a string array in json using groovy in Jmeter如何使用Jmeter中的groovy在json中传递字符串数组
【发布时间】:2019-07-15 10:02:49
【问题描述】:

我想使用 groovy 在 Jmeter 中将下面提到的 json 作为 body raw 传递。除了过滤器阵列之外的所有东西都工作正常。如何使用 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) 

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

【问题讨论】:

    标签: json groovy jmeter performance-testing


    【解决方案1】:

    使用下面的代码可以获得所需的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) 
    

    【讨论】:

    • Groovy 不是 groovy!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    相关资源
    最近更新 更多