我正在运行负载测试,例如说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
答案 0 :(得分:1)
最正确的方法是使用sample_variables
property
将下一行添加到 user.properties 文件:
sample_variables=ABCHeader
用您在正则表达式提取器中定义的实际JMeter变量引用替换ABCHeader
下次您run your JMeter test in command-line non-GUI mode喜欢:
jmeter -n -t test.jmx -l result.csv
result.csv 文件将包含一个名为ABCHeader
的额外列,其中包含相关的JMeter变量值,因此您将能够区分哪个请求将发送到哪个后端服务器
鉴于您正在测试负载平衡器后面的应用程序,请确保将DNS Cache Manager添加到您的测试计划中,否则可能会遇到所有线程只使用一台后端服务器的情况。