如何使用jmeter

时间:2017-07-29 06:50:17

标签: json csv groovy jmeter

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

1 个答案:

答案 0 :(得分:2)

假设您有以下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)))

演示:

Groovy CSV to JSON

参考文献: