jmeter - Jmeter 无法在移动应用(混合)上记录 https 站点的步骤
问题描述
我正在使用 Jmeter 5.1.1 版并完成了所有设置,例如在我的三星 Galaxy TAB 中安装 RootCA 证书、在 TAB 中设置代理以及在同一 WiFi 网络上安装笔记本电脑和 TAB。
但在 https 站点上为特定移动应用程序(混合)执行操作时无法记录步骤。虽然在 http 站点上完成了相同的场景,但它成功记录了这些步骤。
当我们使用 Jmeter 在 https 站点上登录应用程序时,应用程序卡住了。
我已经遵循 Jmeter 的基本标准和移动应用程序(混合)。
预期结果 - 记录应作为测试步骤存储在 Jmeter 中,而我们在 https 站点上为移动应用程序(混合)执行相同操作。
实际结果 - 记录没有存储在 Jmeter 中,而我们在 https 网站上为移动应用程序(混合)做了同样的事情并卡在登录页面上。
解决方案
确保您的应用程序清单中有以下条目:
<uses-permission android:name=“android.permission.INTERNET”/> <uses-permission android:name=“android.permission.ACCESS_NETWORK_STATE” /> <uses-permission android:name=“android.permission.ACCESS_WIFI_STATE”/>
将以下行添加到
<application>
部分:android:networkSecurityConfig="@xml/network_security_config"
在文件夹下创建
network_security_config.xml
文件,base/src/{packageMain}/res
内容如下:<?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>
在调试模式下 编译您的应用程序
更多信息:网络安全配置
如果您无权访问应用程序源,您要么必须 root 设备才能安装系统级 MITM 证书,要么使用Android Emulator
推荐阅读
- javascript - Node.js 承诺 .then() 不是序列
- flutter - 基于 StateProvider 更新生成一个临时的 OverlayEntry
- javascript - 在 reactjs 中注销后更改导航栏链接
- python - R:如何自动计算数据框,然后根据多个数据框的结果生成图表?
- mongodb - MongoDB Shell deleteMany() 函数不起作用
- python - 获取两个数据帧之间python中包含子字符串的字符串行数的最快方法
- dynamic - 如何在 shopify 自定义主题开发中添加带有动态部分的动态部分?
- java - 如何防止修改可变对象
- xamarin.forms - Xamarin.Forms 不调用转换器
- react-native - React Native:SectionList 从 renderItem 获取标题