Appium 同一机器 2 个 appium 同时运行安卓测试时,拔掉一个设备,另一个不相关的 appium 也会 down

among · 2016年07月20日 · 最后由 appium_ 回复于 2017年03月30日 · 1885 次阅读

1:appium 版本:1.4.13, 在 1.4.16 上验证也是同样的问题。
2:windows 和 mac 上都验证过,同样的问题。
3:adb 的版本为 1.0.36,
4:场景描述:在同一个机器上接入 2 个安卓设备,起 2 个 appium,相关端口都不冲突,使用 2 个脚本在远程发起测试,都处于正常执行状态。这个时候,拔掉一个安卓设备,与此相关的一个 appium 会报错,但是另一个不相关的 appium 也同样会报错。不相关的 appium 的日志信息如下:

从上图中可以看出,这个不相关的 appium 的日志中,uiautomator die 了,而后出现了 adb 的相关错误,最后一个信息为清理了 appium 中已有的 session,但是另一个测试也出错退出。

目前初步怀疑是 adb 出错引起的。
如果在同一个机器中,同时执行 2 个安卓的测试,其中一个设备被拔出,则会触发这个错误。

不知道大家有没有什么思路。

共收到 9 条回复 时间 点赞

两台机器的日志你只给出了一个

appium 是基于长链接的 是不是 appium 在关闭的时候 kill 掉了 adb 进程?

另一个是 提示 device not found,正常的错误。

你可以观察看当关闭 appium 时 adb 是否重启了
adb devices 看到 启动提示就说明被 kill 了

Address already in use,看提示配置有冲突啊?你确认的端口配置没冲突?

#4 楼 @dongdong 应该是重启了。然后 uiautomator die 掉,最后 appium 自己把 session 也清理掉了。

应该是 adb 重启引起的。只不过为什么在拔掉设备的时候,adb 会重启。

adb 默认是 5037 端口。
appium 在启动的时候,--port %d --bootstrap-port %d --chromedriver-port %d 都是不一样的。

猜测是 appium 自然结束可能自动会清理 adb 进程,你可以看看 appium 源码

同问!!!

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册