macOS下JMeter录制测试遇证书无效及代理连接错误求助
macOS下JMeter录制代理与证书错误解决方案
一、解决证书过期问题
证书过期是触发Received fatal alert: certificate_unknown错误的核心原因,需重新生成并配置有效证书:
- 重新生成JMeter根证书
- 关闭JMeter,找到JMeter安装目录的
bin文件夹,删除旧证书文件ApacheJMeterTemporaryRootCA.crt和ApacheJMeterTemporaryRootCA.ks - 打开终端,进入JMeter的
bin目录,执行命令:
(参数./jmeter -Jproxy.cert.validity=730730表示证书有效期为2年,可按需调整时长) - 启动JMeter,打开「HTTP(S) Test Script Recorder」,点击「Start」,按提示将新生成的证书保存到桌面或其他易访问位置
- 关闭JMeter,找到JMeter安装目录的
- 替换钥匙串中的旧证书
- 打开「钥匙串访问」,搜索
ApacheJMeterTemporaryRootCA,删除过期的旧证书 - 双击新生成的证书文件,选择添加到「系统」钥匙串
- 找到新证书,右键选择「显示简介」,在「信任」选项卡中,将「使用此证书时」设置为「始终信任」
- 打开「钥匙串访问」,搜索
二、修复模板生成的域名异常
模板生成后域名未更新为目标网站,会导致录制范围错误:
- 删除当前测试计划,重新打开JMeter
- 再次选择「Templates」->「Recording」,输入正确参数:
hostToRecord填www.tesla.com,scheme to record选https,指定录制文件路径 - 生成测试计划后,手动检查两处配置:
- 「User Defined Variables」中的
HOST变量,修改为www.tesla.com - 「HTTPS Test Script Recorder」的「URL Patterns to Include」,确保规则为
https://www.tesla.com/.*,删除旧网站的域名规则
- 「User Defined Variables」中的
三、解决代理连接失败(ERR_PROXY_CONNECTION_FAILED)
- 检查端口占用:终端执行命令查看8888端口是否被占用:
若有结果,关闭占用程序或更换JMeter代理端口(比如改为8080)lsof -i :8888 - 重新配置Chrome代理:
- 打开Chrome设置->系统->「打开您计算机的代理设置」
- 确保HTTP、HTTPS、FTP代理均设置为
localhost:8888(或更换后的端口),取消勾选「绕过本地地址的代理服务器」
- 调整录制操作顺序:先启动JMeter的录制功能,再打开Chrome访问
https://www.tesla.com/en_eu,避免提前打开网站导致代理未生效
四、解决Connection reset错误
- 验证DNS解析:终端执行
ping www.tesla.com,确认能正常解析到IP地址 - 检查JMeter高级代理设置:在「HTTPS Test Script Recorder」的「Advanced」选项卡中,确保「SSL Manager」关联的是新生成的证书
- 调整Chrome安全设置:在地址栏输入
chrome://flags/#allow-insecure-localhost,设置为「Enabled」,重启Chrome后再尝试录制
内容的提问来源于stack exchange,提问作者Paulina Puh
相关产品推荐
相关产品推荐

