JMeter5.1通过VPN服务器录制脚本的方法及问题咨询
解决JMeter 5.1通过VPN录制无代理依赖网站的问题
Hey there! Let's work through this recording issue step by step—since your target site only works in Firefox without an HTTP proxy, and you're using JMeter 5.1 with a VPN, we need a setup that plays nice with both the VPN tunnel and JMeter's proxy without breaking site access.
1. 先确认VPN与网站的基础连接
- 首先连接你的VPN,打开Firefox(不要设置任何HTTP代理),确保能正常访问目标网站。这一步是基础,必须保证VPN本身的网络通路没有问题,后续所有配置都基于这个正常连接。
2. 放弃不完整的命令行,用图形界面配置JMeter代理
你之前用的命令jmeter.bat -H -P -u -a -N缺少关键参数值(比如代理主机、端口都没填具体内容),这也是问题根源之一。新手用图形界面配置更稳妥:
- 打开JMeter,右键点击「Test Plan」→ 添加 → 非测试元件 → HTTP(S) Test Script Recorder
- 在「Recorder」标签页:
- 设置「Port」为一个未被占用的端口,比如
8888 - 勾选「Capture HTTP Headers」(可选,但能录制更完整的请求信息)
- 设置「Port」为一个未被占用的端口,比如
- 在「Target Controller」部分,选择你要保存录制脚本的位置(建议先新建一个「Thread Group」,再选中它)
- 切换到「Proxy Settings」标签页:
- 不需要设置「Proxy Server」(VPN已经提供了网络通路,JMeter本身会通过VPN发送请求)
- 保持默认配置即可,无需额外修改
3. 配置系统代理(绕开浏览器代理限制)
因为你的网站无法通过浏览器代理访问,我们可以让系统全局流量走JMeter代理,这样Firefox的请求会自动通过JMeter,同时不破坏VPN的路由:
- 确保Firefox的代理设置为「使用系统代理设置」
- 打开Windows控制面板 → 网络和Internet → 代理 → 开启「手动设置代理」
- 设置「地址」为
127.0.0.1,「端口」为你刚才在JMeter中设置的8888
- 设置「地址」为
- 回到JMeter的Recorder界面,点击「Start」启动代理
4. 处理HTTPS证书问题(如果目标网站是HTTPS)
如果网站是HTTPS协议,需要把JMeter的根证书导入Firefox,否则无法捕获加密请求:
- 在JMeter的Recorder界面,点击「Generate Root CA Certificate」,保存到本地(比如
apache-jmeter-5.1/bin/rootCA.crt) - 打开Firefox → 选项 → 隐私与安全 → 证书 → 查看证书 → 导入 → 选择刚才保存的证书,勾选「信任由此证书标识的网站」,确认完成
5. 开始录制并验证
- 回到Firefox,正常操作目标网站的流程
- JMeter会自动捕获所有HTTP/HTTPS请求,并生成对应的请求元件到你指定的Thread Group中
- 录制完成后,记得点击JMeter的「Stop」按钮,再恢复系统代理设置(关闭手动代理)
常见问题排查
- 如果网站无法访问:检查VPN是否稳定连接,JMeter的端口是否被其他程序占用,系统代理的地址和端口是否与JMeter设置一致
- 如果录制不到请求:确认目标网站的请求是HTTP/HTTPS协议(JMeter仅支持这两种),同时确保系统代理已正确应用
内容的提问来源于stack exchange,提问作者Imran




