首页 > 解决方案 > 在 JMeter 中处理两个不同的“HTTP 请求默认值”值

问题描述

我目前正在进行性能测试,并且要求与以下问题Ignoring-HTTP-Request-Defaults类似(90%)

场景 - 总共 200 个 HTTPs 请求:

  1. 150 个 HTTPs 请求应使用代理、端口、用户名和密码运行。
  2. 50 个 HTTPs 请求应该在没有代理、端口、用户名和密码的情况下运行。

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

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

在此处输入图像描述

因此,超过 50 个 HTTPs 请求采样器(没有代理身份验证)因以下错误消息而失败,因为它没有覆盖全局分配的“HTTP 请求默认值”配置元素(使用代理身份验证详细信息)

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

标签: jmeterperformance-testing

解决方案


  1. HTTP 请求默认值遵循JMeter 范围规则
  2. HTTP 请求默认值为HTTP 请求采样器中设置的字段/设置提供默认值(或其他 HTTP 请求默认值)

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

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

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

在此处输入图像描述


推荐阅读