JMeter测试出现org.apache.http.conn.HttpHostConnectException错误求助
错误核心分析
你遇到的org.apache.http.conn.HttpHostConnectException: Connection refused,本质是JMeter无法和目标主机的80端口建立TCP连接。结合你描述的网络正常、换机器仍报错,大概率是目标端口未开放或协议不匹配导致。
具体解决步骤
- 改用HTTPS协议及443端口:目前多数主流网站已默认禁用HTTP 80端口,仅开放HTTPS 443端口。修改JMeter的HTTP请求配置:将
Protocol改为HTTPS,Port设置为443,重新运行测试。 - 验证目标端口可用性:在终端执行
telnet www.w3schools.com 80或curl http://www.w3schools.com,如果同样返回连接拒绝,说明目标服务器的80端口确实未对外开放,并非JMeter配置问题。 - 排查网络拦截规则:即使本地网络正常,公司网关、防火墙或安全组可能拦截了80端口的出站请求。尝试临时关闭本地防火墙,或联系网络管理员确认是否存在端口限制。
- 检查JMeter代理配置:若你的机器通过代理上网,需在JMeter中配置对应代理:
- 打开
Options->HTTP(S) Test Script Recorder - 在
Proxy Server栏填写代理地址和端口,保存后重新运行测试
- 打开
- 确认DNS解析正常:执行
nslookup www.w3schools.com检查域名解析的IP是否正确,若解析异常,可在JMeter的HTTP请求中直接使用解析后的IP地址进行测试(注意HTTPS请求需关闭证书校验或导入对应证书)。
附原始错误信息
Thread Name:Thread1 1-1
Sample Start:2024-01-15 09:58:34 PKT
Load time:1070
Connect Time:1070
Latency:0
Size in bytes:2624
Sent bytes:0
Headers size in bytes:0
Body size in bytes:2624
Sample Count:1
Error Count:1
Data type ("text"|"bin"|""):text
Response code:Non HTTP response code: org.apache.http.conn.HttpHostConnectException
Response message:Non HTTP response message: Connect to www.w3schools.com:80 [www.w3schools.com/192.229.133.221] failed: Connection refused: connect
HTTPSampleResult fields:
ContentType:
DataEncoding: null
内容的提问来源于stack exchange,提问作者Rida

