通过Android模拟器用JMeter录制Android APK流量遇阻求助
解决企业内部APK JMeter录制报错的额外步骤
- 排查APK内部代理设置:部分企业APK会自带网络代理配置,强制绕过系统代理或使用固定代理。进入APK的设置页面(若有),确认是否开启「不使用代理」或指定了其他代理地址,将其调整为JMeter的代理地址(格式:
你的电脑局域网IP:JMeter录制端口)。 - 将JMeter证书安装到系统证书目录(Android 7+):Android 7及以上版本默认仅信任系统证书目录的CA,需手动将JMeter证书导入该目录:
- 导出JMeter的临时根证书(通常在JMeter安装目录的
bin文件夹下,名为ApacheJMeterTemporaryRootCA.crt) - 用OpenSSL生成证书哈希值:执行
openssl x509 -inform PEM -subject_hash_old -in ApacheJMeterTemporaryRootCA.crt | head -1,得到类似a1b2c3d4的哈希值 - 将证书重命名为
哈希值.0(比如a1b2c3d4.0) - 通过adb命令推送证书到模拟器:
adb push a1b2c3d4.0 /system/etc/security/cacerts/ - 修改证书权限:
adb shell chmod 644 /system/etc/security/cacerts/a1b2c3d4.0 - 重启模拟器
- 导出JMeter的临时根证书(通常在JMeter安装目录的
- 处理APK证书钉扎机制:如果APK启用了证书钉扎(仅信任内置的特定CA),需:
- 联系开发获取关闭证书校验的测试版APK
- 或使用Frida等工具注入脚本绕过证书钉扎(示例命令:
frida -U -f com.your.company.apk -l bypass-pinning.js --no-pause,需提前编写对应绕过脚本)
- 验证JMeter录制配置:
- 确认HTTP(S) Test Script Recorder的端口未被占用,且「Target Controller」正确指向测试计划中的线程组
- 检查「Request Filtering」设置,确保未误过滤APK请求的域名或路径
- 排查模拟器网络干扰:关闭模拟器内的VPN、飞行模式,确认模拟器WiFi已连接到电脑所在局域网,且能正常ping通电脑IP
- 尝试低版本Android模拟器:Android 13+对证书和代理的限制更严格,可切换到Android 11或更低版本的模拟器重试
内容的提问来源于stack exchange,提问作者vallabh patil
相关产品推荐
相关产品推荐

