如何在jmeter中使用groovy脚本从csv数据集配置创建json数组

xu3bshqb  于 2023-01-04  发布在  其他
关注(0)|答案(1)|浏览(235)

我有一个带有多条记录的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)
rqmkfv5c

rqmkfv5c1#

假设您有以下CSV文件:

id,first_name,last_name,email,institute_id,category_id,value
1,john,doe,johndoe@example.com,1,1,true
2,jane,doe,janedoe@example.com,2,2,false

您可以使用以下Groovy代码将其转换为JSON Array

import groovy.json.JsonOutput

    def lines = new File('test.csv').readLines()

    def keys = lines[0].split(',')
    def rows = lines[1..-1].collect { line ->
        def i = 0, vals = line.split(',')
        keys.inject([:]) { map, key -> map << ["$key": vals[i++]] }
    }

    log.info(JsonOutput.prettyPrint(JsonOutput.toJson(rows)))

演示:

参考文献:

相关问题