【问题标题】:jmeter Reading Json data from file using JSR223, converting braces to square bracketconvertingjmeter 使用 JSR223 从文件中读取 Json 数据,将大括号转换为方括号
【发布时间】:2020-01-08 11:41:10
【问题描述】:

我在 Windows 10 中使用 jmeter 5.1,在我的 jmeter 测试计划中,我正在从文件中读取 json 数据,读取后,我使用 log.info ${sdata} 来记录消息,但输出转换为大括号{ 到方括号 [,谁能告诉我怎么了。

下面是json文件包含的数据

{"name":"Foo Bar","year":"2018","timestamp":"2018-03-08T00:00:00","tags":["person","employee"],"grade":3.14}

{
    "name": "Foo Bar",
    "year": "2018",
    "timestamp": "2018-03-08T00:00:00",
    "tags": [
        "person",
        "employee"
    ],
    "grade": 3.14
}

下面是我在 JSR223 Prepocessor 中读取文件并将其记录到信息中的行

def sdata = new groovy.json.JsonSlurper().parseText(new File("data.json").text)
log.info "$sdata"

下面是log.info的输出

["name":"Foo Bar","year":"2018","timestamp":"2018-03-08T00:00:00","tags":["person","employee"],"grade":3.14]

[
    "name": "Foo Bar",
    "year": "2018",
    "timestamp": "2018-03-08T00:00:00",
    "tags": [
        "person",
        "employee"
    ],
    "grade": 3.14
]

在上面的输出中,大括号 { 被替换为方括号 [

请帮忙

【问题讨论】:

  • 文件中的 JSON 不止一个

标签: groovy jmeter jsr223


【解决方案1】:

发生这种情况是因为您基本上是在打印 LazyMap 的文本表示

如果您想看到与输入相同的 JSON,您应该创建一个 JsonBuilder 类实例并将“slurped”对象传递给它。

改变这一行:

log.info "$sdata"

到这个:

log.info(new groovy.json.JsonBuilder(sdata).toPrettyString())

更多信息:

【讨论】:

  • 它工作,感谢分享我的解决方案。这个对我有用 JsonBuilder(sdata).toPrettyString())
猜你喜欢
  • 1970-01-01
  • 2011-09-06
  • 1970-01-01
  • 1970-01-01
  • 2019-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多