Appium系列--9--【野蛮成长】app崩溃了,重启把它调用起来

最近一段时间,真的是忙成狗,不过也却是成长的很快,会陆陆续续将干货分享出来

在实际的自动化测试过程中,由于app的不稳定,经常会出现app奔溃,或者元素找不到的情况,这种情况就会导致测试用例失败或者更有甚者是脚本无法运行下去,这个时候就希望将app重新启动起来。

需要重启app,我们分两个业务场景来分析

  • app奔溃,报crash时的app重启
  • 找不到定位元素,重启app,重新走测试用例(这种情况要结合自己的业务场景具体问题具体分析,有些定位不到元素的问题本身就是用例的失败)

从技术上分析

存在以下几个疑问:

  • crash之后,appium和客户端直接的session 是否会断掉?
  • 如果重启app,appium和客户端的是需要重新建立连接创建session吗?
  • 之前的session数据还会保留吗?数据是不是就丢失了?

何以解忧,唯有实践,实践出真知

(只是将核心代码贴出来,主要是讲思路)

  • crash的时候,重启app
String cmd2 = "adb shell am start -n com.synative.zepra/com.synative.zepra.features.launch.SplashActivity";
//cmd的方式执行命令
cmdUtils.cmdExecute(cmd2);
//重启之后,给app一点加载的时间
for(int i=1;i<=6;i++){
	//休眠时间这样子写,是类似于appium和客户端端之间的心跳请求
	//是因为,appium在60s之内没有接收到新的命令,则会断掉session
	driver.getContext();
	Thread.sleep(5000);
}
//重新执行测试用例
doAction(driver);

你可能感兴趣的:(自动化测试开发系列教程,appium,自动化)