如何从Appium JUnit测试中监控iOS模拟器/Android模拟器的HTTP流量?

7

我正在使用Appium为iOS/Android应用编写JUnit测试,通过iOS模拟器和Android模拟器来驱动测试。该应用程序通过远程服务器发送和接收HTTP调用。我希望从我的JUnit测试中测试应用程序是否发送了正确的HTTP流量。有哪些方法可以在代码内部监视网络流量?

3个回答

4

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

1)在代码中使用代理。我尝试了一个小型代理,有点喜欢,但是维护小型代理代码增加了我的开销。如果你对代理非常了解,你将能够处理它。https://github.com/ganskef/LittleProxy-mitm

2)最终,我发现最好使用Android logcat。我们手机进行的所有通信都会在logcat中记录。我只需要一些命令来过滤出我的应用程序正在进行的网络请求。我不记得所有的命令,但是大概是这样的。我知道这不正确,但它会给你一个起点,我100%确定有人会纠正它。

adb logcat -d | grep com.xyz.abc


我也一直在研究小代理。过滤Android logcat似乎是一个更简单的解决方案。你知道iOS是否有一个日志记录器,可以解析HTTP流量数据吗? - Bruce Tu
你有两个选项可以使用IOS iconsole https://github.com/nicklockwood/iConsole 和 idevicesyslogs http://www.libimobiledevice.org/。此外,您也可以向我发送1000美元以获取您项目的工作代码。 :) - vishal
1
啊...我觉得我找到了一个方法。对于Android系统,我正在通过driver.manage().logs().get("logcat")获取驱动程序的日志信息,对于iOS系统,则是driver.manage().logs().get("syslog")。 - Bruce Tu
你在使用Appium吗?如果不是,那么你在使用什么? - vishal
是的,我正在使用Appium。我做了类似于这个的事情:https://dev59.com/Gofca4cB1Zd3GeqPpe_D - Bruce Tu

1

对于JavaScript和Python,命令如下:

driver.getLogs('logcat');

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接