JMeter 5.6.2访问内部站点遇SocketException连接重置问题求助
问题概述
测试内部HTTPS站点https://peoplesoftportaltest/Default.asp?和https://peoplesoftportaltest/SA_QUESTIONNAIRE.asp时,浏览器可正常访问,但JMeter返回错误:
Response code:Non HTTP response code: java.net.SocketException;Response message:Non HTTP response message: Connection reset
已配置user.properties中的httpclient4.retrycount=1、hc.parameters.file=hc.parameters,以及hc.parameters中的http.connection.stalecheck$Boolean=true,但问题未解决,且公司环境无代理。
排查与解决步骤
1. 对齐SSL/TLS协议配置
浏览器会自动适配站点支持的TLS版本,JMeter可能默认使用较旧协议,在user.properties中添加对应配置:
https.default.protocol=TLSv1.2 # 若站点支持TLSv1.3,可改为TLSv1.3
2. 导入内部CA证书到JMeter信任库
若站点使用公司内部CA签发的证书,JMeter默认信任库无法识别,需手动导入:
keytool -import -alias peoplesoft_portal_cert -file /path/to/your/internal/cert.crt -keystore $JMETER_HOME/jre/lib/security/cacerts
默认信任库密码为changeit,执行后重启JMeter。
3. 匹配浏览器请求头
服务器可能校验请求头完整性,用浏览器开发者工具(F12)抓取正常请求的全部头信息,复制到JMeter的HTTP信息头管理器中,重点包含:
User-Agent:完全复制浏览器的User-Agent值Accept、Accept-Encoding、Accept-LanguageCookie:若站点依赖会话,需确保JMeter携带有效Cookie(可通过录制或手动添加)
4. 调整连接超时与KeepAlive设置
在HTTP请求的高级标签页:
- 设置
连接超时和响应超时为30000毫秒(可根据实际情况调整) - 勾选
使用keepalive,保持和浏览器一致的长连接行为
5. 禁用不必要的重试机制
之前配置的重试可能加剧连接重置问题,将user.properties中的重试计数改为0:
httpclient4.retrycount=0
6. 检查服务器端限制
联系运维查看目标站点的服务器日志,确认是否存在:
- 防火墙/IDS拦截JMeter的请求特征
- 服务器对单IP并发连接数的限制
- 服务器端连接池耗尽导致的强制断开
内容的提问来源于stack exchange,提问作者Tinu

