jmeter - Jmeter 移动应用程序测试 - 无法代理
问题描述
在我的 Mac 上安装了 Jmeter 5.3。我已将 HTTP(s) 代理设置为 8089。在我的像素 2xl 设备上安装了 Jmeter 证书。使用端口配置代理。代理设置后,无法在我的手机上上网。结果无法记录Jmeter脚本。
解决方案
- 确保两台设备都在同一个子网中,您可以从笔记本电脑 ping 移动设备,反之亦然
- 确保 JMeter 正在侦听 IPv4 接口,如果不是这种情况 -在system.properties
java.net.preferIPv4Stack=true
文件中添加行(位于 JMeter 安装的“bin”文件夹中) - 确保到端口 8089 的传入连接未被操作系统防火墙或其他防病毒软件阻止
如果您的设备运行的是Android 7.0或更高版本,您需要采取一些额外的步骤才能记录 HTTPS 流量,尤其是:
将下一行添加到您的Android 应用程序清单文件的
application
部分:android:networkSecurityConfig="@xml/network_security_config"
network_security_config.xml
在您的应用程序资源文件夹下创建文件并将以下代码放入其中:<?xml version="1.0" encoding="utf-8"?> <network-security-config> <debug-overrides> <trust-anchors> <!-- Trust user added CAs while debuggable only --> <certificates src="user" /> </trust-anchors> </debug-overrides> </network-security-config>
在调试模式下编译并安装您的应用程序:
gradlew installDebug
更多信息:使用 Android 设备录制
如果您无权访问应用程序源,则必须将设备 root才能使用 JMeter 记录流量,方法是将其证书放入 Android OS 受信任的权限存储中
推荐阅读
- python - 如何查看 Django ORM 运行的查询?
- python - 如何从 python 中的特定列创建列表等
- excel - 隔离一列中的唯一值,然后将值从另一列复制到其他重复值?
- python - 从 PyQt4 到 PyQt5 的转换
- python - 带有日期(或日期时间)的 Pandas 'astype'
- javascript - 无法根据“wheel”事件侦听器增加值
- javascript - 您如何正确导出/导入 NodeJs 类及其各自的功能
- split - Elixir - 当我在控制台中看到结果时出现字符串拆分问题
- python - 以百万为单位设置 y 轴
- android - 按下设备后退按钮时出现 Flutter WebView 异常