JMeter-在获得响应之前查看当前请求

时间:2018-10-31 02:56:16

标签: jmeter

在GUI模式下运行JMeter时,有时请求卡住或花费很长(几分钟或更长时间)才能获得响应

是否可以在收到响应之前查看请求?

显然,由于作用域规则,监听器是在Sampler完成后执行的,但是还有另一种方法吗?

2 个答案:

答案 0 :(得分:1)

  1. 最简单,最显而易见的选择是将请求发送到其他任何地方,即localhostexample.com,无论在哪里。您将立即获得响应,因此可以使用View Results Tree监听器
  2. 检查请求的详细信息
  3. 一个更复杂的选项是使用JSR223 PreProcessorGroovy将请求详细信息打印到 jmeter.log 文件,这将查询sampler实例这是HTTPSamplerProxy类的缩写,例如:

    log.info('URL: ' + (sampler.getUrl() as String) + sampler.getQueryString())
    log.info('Parameters: ')
    sampler.getArguments().each {arg -> 
        log.info(arg.getObjectValue() as String)
    } 
    if (sampler.getCookieManager() != null) {
        log.info('Cookies: ') 
        sampler.getCookieManager().getCookies().each { cookie ->
            log.info(cookie.getObjectValue() as String)
         }
    }
    
    if (sampler.getHeaderManager() != null) {
        log.info('Headers:')
        sampler.getHeaderManager().getHeaders().each {header -> 
            log.info(header.getObjectValue() as String)
        }
    }
    //etc
    

    演示:

    enter image description here

答案 1 :(得分:0)

按照Apache JMeter的主要书籍,填写超时可以防止出现此类问题:

  

“填充HTTP请求的超时(毫秒)”选项使您无需等待   无限期地进行SUT响应。

     

这将带来以下好处:

     

•允许JMeter在测试结束时停止,而不必无限期地等待   挂起的请求。默认情况下,HTTP请求中的超时是无限的