在jmeter中捕获http请求和响应的详细信息

在jmeter中捕获http请求和响应的详细信息,jmeter,performance-testing,jmeter-5.0,Jmeter,Performance Testing,Jmeter 5.0,我正在为http请求设置jmeter测试计划,我想创建一个表,从http请求和响应中捕获一些细节。我使用CSV数据集配置从文件中读取http请求。我的请求和响应格式如下 Http请求格式:{“类型”:“”“有效负载”:[]} Http响应格式:{“响应”:[]} 我想为每个请求、响应捕获的内容包括HTTP请求的类型、响应的数组大小(或有效负载的数组大小)和所用的时间 我使用的jmeter版本是v5.2.1。关于如何设置的任何输入 编辑:我的HTTP请求是POST请求。我希望从请求正文中捕获详细信

我正在为http请求设置jmeter测试计划,我想创建一个表,从http请求和响应中捕获一些细节。我使用CSV数据集配置从文件中读取http请求。我的请求和响应格式如下

Http请求格式:
{“类型”:“”“有效负载”:[]}

Http响应格式:
{“响应”:[]}

我想为每个请求、响应捕获的内容包括HTTP请求的类型、响应的数组大小(或有效负载的数组大小)和所用的时间

我使用的jmeter版本是v5.2.1。关于如何设置的任何输入


编辑:我的HTTP请求是POST请求。我希望从请求正文中捕获详细信息。

如果您不介意使用JMeter插件,您可以:

  • 将CSV文件中的变量声明为

  • 使用配置如下的JSON提取器从响应中提取匹配数:

    • 已创建变量的名称:
      responsearray

    • JSON路径表达式:
      $.RESPONSE.*

    • 匹配编号:
      -1

      您需要在示例变量中声明的变量值将是
      responsearray\u matchNr

  • 可以使用以下命令将上述示例变量保存到文件中:


  • 如果您不能使用插件,您仍然可以使用以下代码实现相同的功能:

    def result=新文件('result.txt'))
    def request=new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArguments(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 timetake=prev.getTime()
    结果
    
    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')