【发布时间】:2017-07-29 06:50:16
【问题描述】:
我有一个包含多个记录(逗号分隔)的 Csv 文件,我需要一个 groovy 脚本,它可以从 csv 获取所有数据并创建一个 json 数组并在 jmeter 中发送一个 POST 请求。下面是我的代码。但它只获取一条记录
import groovy.json.*
import groovy.json.JsonBuilder
def jsonBuilder = new groovy.json.JsonBuilder()
jsonBuilder {
id Integer.parseInt(vars.get("id"))
name vars.get("first_name")
last_name vars.get("last_name")
email vars.get("email")
institute_id Integer.parseInt(vars.get("institute_id"))
category_id Integer.parseInt(vars.get("category_id"))
value Boolean.parseBoolean(vars.get("value"))
}
sampler.addNonEncodedArgument("",jsonBuilder.toPrettyString(),"")
sampler.setPostBodyRaw(true)
【问题讨论】:
-
能否请您也发布变量
vars是什么? -
vars(JMeter 变量)是最常用的组件。它是 org.apache.jmeter.threads.JMeterVariables 类的一个实例,提供对当前变量的读/写访问,能够枚举/更改现有变量、创建新变量以及获取嵌套属性。
-
想要的 json 长什么样?
-
{ "_token": "sometokentext", "candidate": [{ "id": 1, "first_name": "lorem ipsum", "last_name": "lorem ipsum", "email" :“loremipsum@loremipsum.com”,“institute_id”:loremipsum,“category_id”:loremipsum,“value”:false }],“test_id”:“${id}”,“selectedDate”:“${date}” }
-
我完全不明白你为什么需要 groovy 脚本?为什么不将 JSON(正如您在上面的评论中发布的那样)直接放在 HTTP 采样器中,即 HTTP 采样器正文
{ "_token": "sometokentext", "candidate": [{ "id": 1, "first_name": "${first_name}", "last_name": "${last_name}", "email": "${email}", "institute_id": ${institute_id}, "category_id": ${category_id}, "value": ${value} }], "test_id": "${id}", "selectedDate": "${date}" }