问题原因
在我们执行测试多条测试用例的时候,可能会遇到 “A new session could not be created” 的问题,之所以会出现这个问题,很可能是因为:
- 你之前的测试 case 异常,导致 Appium 服务器上的 session 并没有正确结束;
- 被测的应用程序还处于前台,导致重新建立 session 时失败。
解决方法:
- 在执行用例之前的 setUp 方法中,使用 adb 命令,强制把 app 关闭掉;
- 在执行完用例之后的 tearDown 方法中,关闭 session,保证下一条用例开始时,Appium 服务器环境是初始化状态;
- 在 Appium 服务器启动时,加上 “--session-override”,下一条测试用户运行时,会覆盖之前的 session,保证了 session 能够正常被创建。
一些提高测试 case 稳定性设计思路:
- 设计测试用例的时候,尽量减少用例的耦合性,每个用例之间相互独立;
2 执行完用例之后,回到初始化状态,如测试完一个收藏功能之后,需要取消收藏,初始化数据;
- 在用例执行前,初始化 session 服务,在用例执行之后,断开 session;
- 可以在每个测试 case 中,加上
try...catch...exception
(Java)、try...except
(Python) 进行异常处理,即使这条用例失败了,也能保证下一条用例正常执行;