【问题标题】:JMeter - Native Andoid App Recording ErrorJMeter - 本机 Android 应用程序录制错误
【发布时间】:2020-08-18 18:56:48
【问题描述】:

我们可以创建原生移动应用程序的脚本吗(这里是 Android,不是混合应用程序或基于移动浏览器的应用程序)。

我进行了 Mobile 中所需的各种配置,例如将代理设置为与运行 JMeter 的机器的 IP4 匹配。当我开始录制时,我看到 HTTP(S) Test Script Recorder 的侦听器显示错误: 响应消息:收到致命警报:certificate_unknown 确保浏览器设置为接受 JMeter 代理证书 和响应为: javax.net.ssl.SSLHandshakeException:收到致命警报:certificate_unknown

请帮助理解这个概念以及如何解决它。 谢谢, 附言

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    首先确保将 JMeter 的 MITM 证书导入您的 Android 设备。证书文件名为ApacheJMeterTemporaryRootCA.crt,当您启动 HTTP(S) 测试脚本记录器时,它会在 JMeter 安装的“bin”文件夹中生成。

    有关详细信息,请参阅HTTP(S) Test Script Recorder 文档的 HTTPS 记录和证书一章

    如果您正在运行Android 7.0 or higher,则需要采取一些额外步骤才能捕获本机应用程序流量,尤其是:

    1. 将下一行添加到Android app manifest 文件的application 部分:

      android:networkSecurityConfig="@xml/network_security_config"
      
    2. 在您的app resources 文件夹下创建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>
      
    3. Compile and install your application in debug mode点赞:

      gradlew installDebug
      

    一旦您按照上述步骤启动应用程序的调试版本并降低网络安全性,您应该能够使用 JMeter 的代理服务器拦截和解密其流量。

    更多信息:Recording Using Android Devices

    【讨论】:

    • 谢谢德米特里!我已经安装了 ApacheJMeterTemporaryRootCA.crt,但会参考您提供的其他输入并查看其工作情况。再次感谢您的快速回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    相关资源
    最近更新 更多