在jmeter中的jsr223采样器中读取json文件并提取数据

时间:2018-11-04 13:58:45

标签: json parsing jmeter jsr223

import com.jayway.jsonpath.JsonPath

def idCSV = new File('id.csv')
def index = [fileOne.json, fileTwo.json]

def jsonString

index.each { file ->
	jsonString = ________

	def ids = JsonPath.read(jsonString, '$..id')

	ids.each { id ->
		idCSV << id << newLine
	}
}

如何填充jsonString = ____,这样我就可以将json文件转换为字符串并解析该字符串以从json字符串中提取ID和一些信息。 而且我不以http request-> GET->文件格式进行操作。 以前,我从http响应中提取了jsonString,现在效果很好,我想这样做。

2 个答案:

答案 0 :(得分:0)

使用JsonSlurper

def jsonString = new groovy.json.JsonSlurper().parseText(new File("json.txt").text)

答案 1 :(得分:0)

我的期望是您正在寻找File.getText()函数

jsonString = file.text

我没有完整的愿景,为什么您需要将JSON中的值存储在CSV文件中,但是还有另一种实现方式,不需要编写脚本,因为您的方法仅适用于1个并发线程,如果您将添加更多尝试写入同一文件的用户-您将遇到race condition

  • 您可以通过Directory Listing Config
  • 将文件夹中的文件读入JMeter变量。
  • 可以使用HTTP Request采样器

    读取文件

    enter image description here

  • 可以使用JSON Extractor来获取值,它们将被自动存储到JMeter变量中,因此您以后可以使用它们。
  • 如果您需要文件中包含这些值(尽管我不建议这种方法,因为这会导致大量的磁盘IO并可能运行您的测试),则可以使用Flexible File Writer