截获从ios应用程序向服务(从Python和Appium)发送的请求

截获从ios应用程序向服务(从Python和Appium)发送的请求,python,ios,json,networking,appium,Python,Ios,Json,Networking,Appium,我正在mac电脑上工作,我正在尝试在iPhone上自动化某个应用程序,在某个时候,我需要验证该应用程序发送给服务的请求(更确切地说是JSON请求)。我使用Appium连接到手机,使用Python编写脚本 我知道instruments具有网络功能,可以让您检查应用程序的网络流量,但我不确定它是否也显示JSON请求 因此,我正在等待截获json请求并在python脚本中做出一些断言。有人知道一些方法吗?几个月前我也有过类似的问题,一些对自动化毫不关心的笨蛋也给了我投票。但无论如何,你有两种解决这个问

我正在mac电脑上工作,我正在尝试在iPhone上自动化某个应用程序,在某个时候,我需要验证该应用程序发送给服务的请求(更确切地说是JSON请求)。我使用Appium连接到手机,使用Python编写脚本

我知道instruments具有网络功能,可以让您检查应用程序的网络流量,但我不确定它是否也显示JSON请求


因此,我正在等待截获json请求并在python脚本中做出一些断言。有人知道一些方法吗?

几个月前我也有过类似的问题,一些对自动化毫不关心的笨蛋也给了我投票。但无论如何,你有两种解决这个问题的方法。我不确定仪器的功能,因此不会对此发表评论

1) 使用idevicesyslog基本上可以查看终端中应用程序的所有日志,将它们发送到一个文件中,并使用您所查找的内容解析该文件。更多信息请点击这里

但很明显,要想让它工作,需要打开应用程序日志


2) 你需要使用一个代理来嗅探你的应用程序发出的http请求。现在,商业上发送的大部分流量都是HTTPS,因此您可能会遇到安全流量的证书问题。为了使安全请求能够工作,您需要一个稳定的代理,它可以使用证书和所有信息嗅探流量。我建议你看看查尔斯的代理人。此处的更多信息

在python脚本中捕获并执行断言的确切目的是什么?如果您只是想测试是否发出了正确的呼叫,您应该在单元测试中使用存根来捕获网络呼叫。当应用程序生成时,我们需要在集成阶段测试应用程序的功能,确保在正确的时间进行正确的网络呼叫。我的应用程序在功能上自动处理了大量此类案例。好吧,假设我使用Charles proxy,有没有办法提取Charles从python脚本收集的数据?是的,它提供了一个API和web界面,您可以控制并将会话数据导出为XML、HAR或CSV文件,然后解析文件。如果你有更多问题,请告诉我。如果答案解决了你的问题,也请接受。