最近在学习使用Appium做自动化,遇到好多问题,在网上各种找解决方案,觉得有必要在这里总结一下,后续如果有新坑,再来补充~
- Appium默认设置60s超时时间,60s内没有新指令会自动退出
可以先试试 caps.setCapability("newCommandTimeout",timeout);
我用这种办法没有成功,后来找到了\Appium\node_modules\appium\bin\appium.js里有这个设置,可以直接在源码里改
socket.setTimeout(5 * 240 * 1000, function () {
socket.destroy();
});
socket.destroy();
});
- 如果需要不想通过Appium启动应用,直接在已经打开的应用上执行操作,可以参考使用这个方法
- 我使用Appium是想做性能自动化测试的,但是Appium并不适合测试响应时间,原因在于其调用的uiautomator.jar中,有些地方存在延时,需要对源码进行修改
- QueryController.java中定义的findAccessibilityNodeInfo方法中的延时
- UiAutomatorBridge.java中waitForIdle方法中的延时
- 编译uiautomator源码,生成jar包的方法(我是在Linux环境下编译的):
后续有新坑,再来跟进~
参考:
https://testerhome.com/topics/3371
https://testerhome.com/topics/3231