【问题标题】:Not able to capture HTTPS request - mobile performance testing无法捕获 HTTPS 请求 - 移动性能测试
【发布时间】:2015-07-18 09:18:20
【问题描述】:

Android TAB 和 JMeter 用于捕获/记录应用程序流。但是 HTTPS 请求没有在 JMeter 中捕获。我关闭了 Jmeter 并启用了 Charles Proxy 并再次进行了录制。在 Charles 中记录了相同的应用程序流程后,我接受了所有 HTTPS 请求并将其放入 Jmeter。因为要录制两次,所以花了更长的时间。

还有其他方法可以通过 JMETER 捕获 HTTPS 流量吗?

感谢您的帮助并分享您的建议。

问候, 湿婆

【问题讨论】:

    标签: android https jmeter


    【解决方案1】:

    第一次使用 JMeter 记录模板 然后启动JMeter的HTTP(S) Test Script Recorder,会在jmeter/bin文件夹下生成一个名为ApacheJMeterTemporaryRootCA.crt的文件。 将文件复制到您的 android 设备并将其安装为 CA 证书。 有关详细信息,请参阅How do I install a user certificate? 线程。

    证书的有效期有限(默认为 7 天),但您可以通过在 user.properties 中设置来延长它

    proxy.cert.validity=天数

    现在您在 Android >= 7.0 中将面临的问题是应用程序仅默认使用系统安装的证书。

    所以你需要让应用程序的开发者修改APK,看看为什么here

    编辑清单并添加:

    android:networkSecurityConfig="@xml/network_security_config"

    你会得到:

    ...

    然后在 res/xml/network_security_config.xml 中添加这个:

     <?xml version="1.0" encoding="utf-8"?>
     <network-security-config>  
           <base-config>  
                 <trust-anchors>  
                     <!-- Trust preinstalled CAs -->  
                     <certificates src="system" />  
                     <!-- Additionally trust user added CAs -->  
                     <certificates src="user" />  
                </trust-anchors>  
           </base-config>  
     </network-security-config>
    

    请注意,无论您使用什么工具(Neoload、LoadRunner、...),都需要这样做

    【讨论】:

    • 如果我正在测试Android应用程序的性能,应该在HTTPS域字段中指定什么?...
    【解决方案2】:

    某些 Android 版本仅支持开箱即用的 HTTP 代理,您可能需要安装第 3 方软件,如 ProxyDroid 才能配置 HTTPS 代理。

    更简单的选择是使用Mobile Recorder 解决方案,如果您对 JMeter 配置的正确性有疑问,您可以测试 Mobile Recorder。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多