我们可以在命令行中执行adb install安装某个应用,会发现快速返回Success了,而实际应用正在安装中,这种情况下,appium会误以为被测应用已经安装上了,然后去启动这个app,结果发现app不存在(appium重重试一次,仍然失败),这种情况下,appium测试100%会失败。
事故手机:OPPO R9sk
测试的Appium版本:1.12.1
解决方案
找到安装app的地方,安装完后,检测app是否真正安装成功了,如果没成功,则等待,直到超时或者成功安装。
实施办法
针对UIAutomator1,我们需要更改appium-android-driver,我们找到lib/driver.js的initAUT方法,在代码await helpers.installApk(this.adb, this.opts);后加上这个检测过程:
await helpers.installApk(this.adb, this.opts); |
waitPackagePresent就是这个检测过程的方法,代码如下:
/** |
而针对UIAutomator2的话,同样我们找到UIAutomator2的nodejs驱动工程:appium-uiautomator2-driver,然后找到lib/driver.js,同样也是在initAUT方法中:
if (this.opts.app) { |
waitPackagePresent方法同上。