问题描述
我正在寻找一种方法,通过截获应用程序中发出的API调用来基本上操纵应用程序中显示的数据,然后基本上操纵数据(积极和消极的情况),然后观察我的应用程序的行为。我一直在手动拦截这些呼叫,并在Charles Proxy工具中进行了此操作,但我想摆脱它,并寻找一种通过自动化进行操作的方法。设置我的测试数据通过代理拦截API调用,然后在App上运行我的功能测试。我正在为Android和iPhone应用程序执行此操作。
注意:我一直在使用Appium for Automation。
解决方法
Appium是一个黑盒测试自动化工具,它没有用于在服务器端与应用程序一起操作的API。在Android上,它允许您以预定义状态启动“活动/片段”,但这并不等同于您所做的事情。
我认为这里的正确方法是模拟服务器,其中有多个库one example。
然后,您可以为Android / iOS应用构建一个版本,以使用模拟的服务器而不是真实的服务器。在这种情况下,您将预先定义响应,而不是使用代理覆盖它。
,您可以要求开发人员记录要截取的内容,或者是否已经在日志中截取它们。您只需从ADB收集日志并将其用于您的appium代码中。 您可以使用以下命令获取adb日志:
List<LogEntry> logEntries = driver.manage().logs().get("logcat").getAll();
for(LogEntry entries:logEntries){
if(entries.getMessage().contains("*Things you need from logs*")){
entry= entries.getMessage();
}
}
return entry;