首页 > 解决方案 > Jmeter 移动应用程序测试 - 无法代理

问题描述

在我的 Mac 上安装了 Jmeter 5.3。我已将 HTTP(s) 代理设置为 8089。在我的像素 2xl 设备上安装了 Jmeter 证书。使用端口配置代理。代理设置后,无法在我的手机上上网。结果无法记录Jmeter脚本。

标签: jmeterperformance-testing

解决方案


  1. 确保两台设备都在同一个子网中,您可以从笔记本电脑 ping 移动设备,反之亦然
  2. 确保 JMeter 正在侦听 IPv4 接口,如果不是这种情况 -在system.propertiesjava.net.preferIPv4Stack=true文件中添加行(位于 JMeter 安装的“bin”文件夹中)
  3. 确保到端口 8089 的传入连接未被操作系统防火墙或其他防病毒软件阻止
  4. 如果您的设备运行的是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 受信任的权限存储中


推荐阅读