使用Apache JMeter 5.5进行移动APP性能测试时手机显示无数据连接
解决JMeter代理配置后手机无数据连接的问题
1. 验证代理IP与端口的正确性
- 确保手机代理设置的IP是JMeter所在电脑的局域网IP(不能用127.0.0.1),可在电脑上通过
ipconfig(Windows)或ifconfig/ip addr(Linux/macOS)查看正确的局域网IP - 检查JMeter的HTTP(S) Test Script Recorder配置的端口和手机代理端口完全一致,且该端口未被其他程序占用:用
netstat -ano | findstr 端口号(Windows)或lsof -i :端口号(Linux/macOS)排查占用情况
2. 确认JMeter代理处于正常运行状态
- 启动JMeter的HTTP(S) Test Script Recorder,确认界面上“Start”按钮变为“Stop”,且无报错提示
- 若JMeter启动代理失败,暂时关闭电脑防火墙,或添加JMeter端口的放行规则
3. 排查证书安装与信任状态
- 确认手机安装的是JMeter生成的根证书,且已设置为信任:
- Android:进入「设置」→「安全」→「加密与凭据」→「信任的凭据」,在「用户」标签下找到JMeter证书并启用
- iOS:安装证书后,进入「设置」→「通用」→「VPN与设备管理」,找到JMeter证书并点击“信任”
- 若证书无效,重新生成JMeter证书:在HTTP(S) Test Script Recorder的“SSL Manager”中删除旧证书,重新生成后再安装到手机
4. 检查手机网络环境与代理兼容性
- 确保手机和JMeter电脑连接同一局域网(同一WiFi或热点),避免跨网段通信失败
- 关闭手机的“私有DNS”功能(路径:设置→网络与互联网→私有DNS,选择“关闭”),部分Android 7+系统会因私有DNS干扰代理
- 若使用USB反向代理,确认命令执行成功:
adb reverse tcp:8888 tcp:8888(替换为你的JMeter端口),同时关闭手机上的VPN或第三方代理APP
5. 验证代理连通性
- 在手机浏览器访问
http://JMeter电脑IP:端口号,若能看到JMeter代理欢迎页面,说明连通正常;若无法访问,检查电脑防火墙、网络路由设置 - 用手机浏览器访问任意HTTP网站(如http://example.com),查看JMeter是否能捕获请求:若能捕获但APP无法联网,大概率是APP本身的代理绕过或证书校验机制导致
6. 针对APP的特殊处理
- 部分APP会忽略系统代理,若APP支持手动配置代理,可在APP设置中开启并填写JMeter的IP和端口
- 若APP采用证书钉扎(Certificate Pinning)技术,会拒绝JMeter的根证书,此时可使用Xposed框架(Android)或Frida工具绕过证书校验,或联系开发者获取无证书钉扎的测试版APP
内容的提问来源于stack exchange,提问作者Ullas B.C
相关产品推荐
相关产品推荐

