在 JMeter 中处理两个不同的“HTTP Request Defaults”值

Handling the two different “HTTP Request Defaults” values in JMeter

我目前正在进行性能测试并且有一个与以下问题相似(90%)的要求

Scenario - Total of 200 HTTPs Requests:

  1. 150 HTTPs Requests should run with Proxy, Port, Username and Password.
  2. 50 HTTPs Requests should run without Proxy, Port, Username and Password.

为了满足这一要求,我在项目级别创建了一个“HTTP 请求默认值”配置元素(带有代理身份验证详细信息),并为每 50 个 HTTP 创建了 50 个单独的“HTTP 请求默认值”(没有代理身份验证详细信息)请求。

HTTP 请求默认层次结构屏幕截图:

So above 50 HTTPs Request Samplers (without Proxy Authentication) is getting failed with the below error message since it's not overriding the globally assigned "HTTP Request Defaults" config element (With Proxy Authentication details)

Response code: Non HTTP response code: org.apache.http.conn.HttpHostConnectException Response message: Non HTTP response message: Connect to proxy.usp.com:8080 [proxy.usp.com/91.195.240.126] failed: Connection timed out: connect
  1. HTTP 请求默认值服从 JMeter Scoping Rules
  2. HTTP 请求默认值为 fields/settings 提供 默认 值,在 HTTP Request 采样器中 未设置 (或其他 HTTP 请求默认值)

因此,如果您在 全局 级别设置代理 - 它将应用于范围内的 *所有** HTTP 请求采样器。

解决方案是通过将 HTTP 请求默认值添加到需要代理的采样器来设置代理详细信息。

您不能通过提供空白值来 "override" 父级 HTTP 请求默认代理设置,从 JMeter 5.1.1 开始,您只能做相反的事情。