我正在使用Appium为iOS/Android应用编写JUnit测试,通过iOS模拟器和Android模拟器来驱动测试。该应用程序通过远程服务器发送和接收HTTP调用。我希望从我的JUnit测试中测试应用程序是否发送了正确的HTTP流量。有哪些方法可以在代码内部监视网络流量?
几个月前我也遇到了同样的问题,并尝试了两种解决方案。
1)在代码中使用代理。我尝试了一个小型代理,有点喜欢,但是维护小型代理代码增加了我的开销。如果你对代理非常了解,你将能够处理它。https://github.com/ganskef/LittleProxy-mitm
2)最终,我发现最好使用Android logcat。我们手机进行的所有通信都会在logcat中记录。我只需要一些命令来过滤出我的应用程序正在进行的网络请求。我不记得所有的命令,但是大概是这样的。我知道这不正确,但它会给你一个起点,我100%确定有人会纠正它。
adb logcat -d | grep com.xyz.abc
对于JavaScript和Python,命令如下:
driver.getLogs('logcat');