从 jmeter 中的 http 请求和响应中捕获详细信息
Capture details from http request and response in jmeter
我正在为 http 请求设置一个 jmeter 测试计划,我想创建一个 table 从 http 请求和响应中捕获一些细节。我使用 CSV 数据集配置从文件中读取 http 请求。我的请求和响应格式如下
Http 请求格式:{"TYPE":"<type>", "PAYLOAD": [<Array of data>]}
HTTP 响应格式:{"RESPONSE":[<Array of data>]}
我想为每个请求、响应捕获的内容是来自 HTTP 请求的类型、响应的数组大小(或有效负载的数组大小)和所用时间。
我使用的jmeter版本是v5.2.1。关于如何设置的任何输入?
编辑:我的 HTTP 请求是 POST 请求。我希望从请求正文中获取详细信息。
如果您不介意使用 JMeter 插件,您可以:
将 CSV 文件中的变量声明为 Sample Variables
使用 JSON 从响应中提取匹配项的数量配置如下:
创建的变量名称:responsarray
JSON 路径表达式:$.RESPONSE.*
匹配编号:-1
您需要在示例变量中声明的变量值为 responsearray_matchNr
以上示例变量可以使用Flexible File Writer
保存到文件中
如果您不能使用该插件,您仍然可以使用 JSR223 Listener and the following Groovy 代码实现同样的效果:
def result = new File('result.txt')
def request = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue())
def requestType = request.TYPE
def requestArray = request.PAYLOAD.size()
def response = new groovy.json.JsonSlurper().parse(prev.getResponseData())
def responseArray = response.RESPONSE.size()
def timeTaken = prev.getTime()
result << requestType << ',' << requestArray << ',' << responseArray << ',' << timeTaken << System.getProperty('line.separator')
我正在为 http 请求设置一个 jmeter 测试计划,我想创建一个 table 从 http 请求和响应中捕获一些细节。我使用 CSV 数据集配置从文件中读取 http 请求。我的请求和响应格式如下
Http 请求格式:{"TYPE":"<type>", "PAYLOAD": [<Array of data>]}
HTTP 响应格式:{"RESPONSE":[<Array of data>]}
我想为每个请求、响应捕获的内容是来自 HTTP 请求的类型、响应的数组大小(或有效负载的数组大小)和所用时间。
我使用的jmeter版本是v5.2.1。关于如何设置的任何输入?
编辑:我的 HTTP 请求是 POST 请求。我希望从请求正文中获取详细信息。
如果您不介意使用 JMeter 插件,您可以:
将 CSV 文件中的变量声明为 Sample Variables
使用 JSON 从响应中提取匹配项的数量配置如下:
创建的变量名称:
responsarray
JSON 路径表达式:
$.RESPONSE.*
匹配编号:
-1
您需要在示例变量中声明的变量值为
responsearray_matchNr
以上示例变量可以使用Flexible File Writer
保存到文件中
如果您不能使用该插件,您仍然可以使用 JSR223 Listener and the following Groovy 代码实现同样的效果:
def result = new File('result.txt')
def request = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue())
def requestType = request.TYPE
def requestArray = request.PAYLOAD.size()
def response = new groovy.json.JsonSlurper().parse(prev.getResponseData())
def responseArray = response.RESPONSE.size()
def timeTaken = prev.getTime()
result << requestType << ',' << requestArray << ',' << responseArray << ',' << timeTaken << System.getProperty('line.separator')