【问题标题】:How do I monitor iOS simulator/Android emulator's HTTP traffic from Appium JUnit tests?如何通过 Appium JUnit 测试监控 iOS 模拟器/Android 模拟器的 HTTP 流量?
【发布时间】:2016-07-02 22:18:57
【问题描述】:

所以我正在使用 Appium 为 iOS/Android 应用程序编写 JUnit 测试,以便在 iOS 模拟器和 Android 模拟器上进行测试。该应用程序向远程服务器发送和接收 HTTP 调用。我想测试应用程序是否从我的 JUnit 测试中发送了正确的 HTTP 流量。有哪些方法可以从我的代码中监控网络流量?

【问题讨论】:

    标签: java android ios junit appium


    【解决方案1】:

    几个月前我遇到了同样的问题,并尝试了两种解决方案。

    1) 在您的代码中使用代理。我尝试了一个小代理。我有点喜欢它,但它也增加了我维护少量代理代码的开销。如果您对代理有非常先进的知识,它就会起作用;你将能够处理它。 https://github.com/ganskef/LittleProxy-mitm

    2) 我终于发现最好使用 Android logcat。无论我们的手机进行何种通信,一切都会登录到 logcat。我只需要一些命令来过滤掉我的应用程序发出的网络请求。我不记得所有的命令,但它是这样的。我知道它不正确,但它会给你一个先机,我 100% 肯定有人会纠正这个问题。

    adb logcat -d | grep com.xyz.abc

    【讨论】:

    • 我也一直在研究小型代理。过滤 Android logcat 似乎是一个更简单的解决方案。你知道 iOS 是否有一个也可以解析 HTTP 流量数据的记录器吗?
    • 您有两个选项用于 IOS iconsole github.com/nicklockwood/iConsole 和 idevicesyslogs libimobiledevice.org。你也可以寄给我 1000 美元来为你的项目获取一个工作代码。 :)
    • 啊...我想我找到了办法。我通过 driver.manage().logs().get("logcat") for Android 和 driver.manage().logs().get("syslog") for iOS 从驱动程序获取日志
    • 你在使用 Appium 吗?如果没有,那你在用什么?
    • 是的,我正在使用 Appium。我做了类似的事情:stackoverflow.com/questions/28557828/…
    【解决方案2】:

    对于 javascript 和 python,命令是:

    driver.getLogs('logcat');
    

    【讨论】:

      猜你喜欢
      • 2011-01-28
      • 2017-03-07
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-26
      • 2019-08-06
      • 2010-12-11
      相关资源
      最近更新 更多