Apache Jmeter HTTP 标头管理器覆盖“主机”标头而不附加端口

Posted

技术标签:

【中文标题】Apache Jmeter HTTP 标头管理器覆盖“主机”标头而不附加端口【英文标题】:Apache Jmeter HTTP Header Manager override "Host" Header without appending the port 【发布时间】:2021-06-23 09:14:06 【问题描述】:

我正在尝试对需要特定“主机”标头进行路由的服务进行负载测试。 (并且此服务也在端口 9211 上运行)。在 Jmeter 配置中,我添加了一个“Http 标头管理器”并为所述标头添加了一个覆盖。但是该请求似乎在主机标头中附加了端口,如下所示。我相信这可能是 jmeter 中的一个错误(或一些奇怪的功能)。无论如何有办法解决这个问题吗?

我希望“主机”标头为“我的主机”,并且仅在不附加端口的情况下。

jmeter 配置

Heder 管理器设置

实际请求标头

谢谢

【问题讨论】:

【参考方案1】:

我不认为这是您可以配置的,它是在HTTPHC4Impl.setConnectionHeaders() function 下完成的,正在为“非默认”端口添加端口(HTTP 为 80,HTTPS 为 443)

实际上它与specification 并不矛盾,所以我建议忽略它。

但是,如果您有特定的用例并且需要在不指定端口的情况下发送 Host 标头 - 您需要将 HTTP 请求采样器的“客户端实现”切换为 Java,该设置位于“ HTTP 请求采样器的“高级”选项卡(如果您希望将设置应用于所有 HTTP 请求采样器,则最好使用 HTTP Request Defaults)

【讨论】:

谢谢,这正是我正在寻找的解决方案。工作..!!

以上是关于Apache Jmeter HTTP 标头管理器覆盖“主机”标头而不附加端口的主要内容,如果未能解决你的问题,请参考以下文章

如何在HTTP标头中设置REMOTE_USER?

Jmeter_录制HTTPS

X-Pad:避免 apache 添加的浏览器错误标头

Jmeter性能监控

Jmeter学习—Jmeter使用入门

Apache JMeter 中的会话/cookie 管理