jmeter - Jmeter-如何在响应标头中提取值并获取该值
问题描述
如何在 jmeter 采样器结果中提取响应标头中的值并获取计数。
我正在运行负载测试,例如说 100 个线程。我的请求将通过负载均衡器到达 4 台服务器。
我需要获取到 ABCHeader 的请求计数:Staging 01,Staging 02,Staging 03,Staging 04。(我从每个请求的响应头中获取)
检查请求是否均匀分布到每个服务器。可能的方法是什么?
我尝试使用正则表达式提取器并提取了值。但我不确定如何获得计数
请检查下面的响应标头:检查 ABCHeader: Staging 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
解决方案
最正确的方法是使用sample_variables
属性
将下一行添加到user.properties文件:
sample_variables=ABCHeader
替换
ABCHeader
为您在正则表达式提取器中定义的实际 JMeter 变量引用下次您在命令行非 GUI 模式下运行 JMeter 测试时,例如:
jmeter -n -t test.jmx -l result.csv
result.csv文件将包含一个名为包含相关 JMeter 变量值的额外列
ABCHeader
,因此您将能够区分哪个请求将发送到哪个后端服务器鉴于您正在测试负载均衡器后面的应用程序,请确保将DNS 缓存管理器添加到您的测试计划中,否则您可能会遇到所有线程只访问一台后端服务器的情况。
推荐阅读
- java - 峰值堆大小 - 是什么意思?
- amazon-web-services - 如何引用来自不同模块的值?
- php - Illuminate\Validation\Factory::make(): 参数 #1 ($data) 必须是数组类型,App\Models\Product 给定
- python - 在 Pandas 中分解多个列
- microservices - Linkerd 代理指标重置
- javascript - 比较 document.getElementsByClassName().innerHTML 和 int
- django - uwsgi静态文件加载错误表单django(react和webpack)
- android - firebase 数据库和存储为图像返回 null
- r - 如果任何条目在 R 中的数据帧中是无限的,则删除组
- php - "rest_invalid_handler","message":"路由的处理程序无效"