【问题标题】:Capture details from http request and response in jmeter从 jmeter 中的 http 请求和响应中捕获详细信息
【发布时间】:2020-08-18 18:51:09
【问题描述】:

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

Http请求格式:{"TYPE":"<type>", "PAYLOAD": [<Array of data>]}

Http 响应格式:{"RESPONSE":[<Array of data>]}

我想为每个请求捕获的内容,响应是来自 HTTP 请求的类型、响应的数组大小(或 PAYLOAD 的数组大小)和所用时间。

我使用的 jmeter 版本是 v5.2.1。关于如何设置的任何意见?

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

【问题讨论】:

    标签: jmeter performance-testing jmeter-5.0


    【解决方案1】:

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

    1. 将 CSV 文件中的变量声明为 Sample Variables

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

      • 创建的变量名称:responsarray

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

      • 比赛编号:-1

        您需要在示例变量中声明的变量值为responsearray_matchNr

    3. 以上示例变量可以使用Flexible File Writer保存到文件中


    如果您不能使用该插件,您仍然可以使用JSR223 Listener 和以下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')
    

    【讨论】:

      猜你喜欢
      • 2020-07-08
      • 2020-10-22
      • 2021-11-29
      • 1970-01-01
      • 2017-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多