0

我想在 jmeter 上捕获我的智能手机网络日志。这通常要求我的智能手机通过我的笔记本电脑访问互联网,将其用作代理并让 jmeter 监听智能手机所连接的端口。以下是我在网上找到的一些参考资料:

http://findnerd.com/list/view/-How-to-Connect-the-Android-Mobile-Device-to-JMETER/4929/

https://dzone.com/articles/how-to-record-mobile-appli-cation-traffic

还有其他参考资料,但它们本质上说的是完全相同的事情。我按照所有步骤操作,但是当我将智能手机的代理设置为笔记本电脑的 IP 地址时,我的智能手机无法访问互联网。唯一的区别可能是因为主板 wifi 适配器在某个时候开始出现故障,所以我在笔记本电脑上使用了 USB WiFi 适配器。我需要知道如何完成这项工作并使用 jmeter 在我的笔记本电脑上捕获我的智能手机网络日志。任何帮助表示赞赏

更新 - 发现问题。我需要在我的 Android 手机上安装 SSL 证书。此证书由 jmeter 在其 bin 文件夹中生成。我必须发送到我的 Android 设备并安装它。现在,我可以通过浏览器在手机上访问互联网,并且可以看到 JMETER 中记录的 https 流量。但是,当我尝试访问任何应用程序时,它给了我以下错误:

javax.net.ssl.SSLHandshakeException:收到致命警报:certificate_unknown。

我知道它与 Jmeter 生成的自签名证书有关,但我不确定为什么它适用于 chrome 而不是应用程序。有人知道对此有任何解决方案吗?

4

1 回答 1

1
  1. 首先,您需要将 JMeter 的 MITM 证书安装到您的 Android 手机上,当您启动HTTP(S) 测试脚本记录器ApacheJMeterTemporaryRootCA.crt时,该文件被调用并在 JMeter 安装的“bin”文件夹中生成
  2. 如果您的手机运行的是Android 7或更高版本,您将需要采取一些额外的步骤才能捕获您的应用程序流量

    • 将下一行添加到应用程序清单文件的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
      
    • 就是这样,现在您应该能够使用 JMeter 捕获您的应用程序流量。

更多信息:使用 Android 设备录制

于 2020-05-03T08:06:58.097 回答