Jmeter-如何提取响应标头中的值并获取该计数

时间:2019-01-24 18:04:11

标签: jmeter

如何在jmeter采样器结果中的响应标头中提取值并获取计数。

我正在运行负载测试,例如说100个线程。我的请求将通过负载平衡器到达4台服务器。

我需要将请求计数转到ABCHeader:阶段01,阶段02,阶段03,阶段04(我从每个请求的响应标头中获取)

检查请求是否平均分配到每个服务器。可能的方法是什么?

我尝试使用正则表达式提取器并提取了值。但是不确定如何计数

请检查以下响应标题:检查 ABCHeader:登台04

>     HTTP/1.1 200 OK
>     Date: Thu, 24 Jan 2019 17:13:29 GMT
>     Server: Apache
>     Cache-Control: no-cache, max-age=0
>     Vary: Accept-Encoding
>     Expires: Thu, 24 Jan 2019 17:13:29 GMT
>     X-Content-Type-Options: nosniff
>     X-XSS-Protection: 1; mode=block
>     Strict-Transport-Security: max-age=31536000
>     Set-Cookie: XSRF-TOKEN=fd; expires=Thu, 24-Jan-2019 19:13:29 GMT; Max-Age=7200; path=/;HttpOnly;Secure
>     Set-Cookie: laravelsession=df; expires=Thu, 24-Jan-2019 19:13:29 GMT; Max-Age=7200; path=/; HttpOnly;HttpOnly;Secure
>     ABCHeader: Staging 04
>     Keep-Alive: timeout=5, max=100
>     Connection: Keep-Alive
>     Content-Type: text/html; charset=UTF-8
>     Set-Cookie: abcLB-Staging=df; path=/; Httponly; Secure
>     Content-Length: 2193
>     Content-Encoding: gzip

1 个答案:

答案 0 :(得分:1)

最正确的方法是使用sample_variables property

  1. 将下一行添加到 user.properties 文件:

    sample_variables=ABCHeader
    

    用您在正则表达式提取器中定义的实际JMeter变量引用替换ABCHeader

  2. 下次您run your JMeter test in command-line non-GUI mode喜欢:

    jmeter -n -t test.jmx -l result.csv
    

    result.csv 文件将包含一个名为ABCHeader的额外列,其中包含相关的JMeter变量值,因此您将能够区分哪个请求将发送到哪个后端服务器

    enter image description here

  3. 鉴于您正在测试负载平衡器后面的应用程序,请确保将DNS Cache Manager添加到您的测试计划中,否则可能会遇到所有线程只使用一台后端服务器的情况。