自动化工具 解决设备掉线问题:自动化测试中,如何解决设备经常掉线的情况?

甬力君 · 2017年06月24日 · 最后由 李雷雷 回复于 2017年06月28日 · 2959 次阅读

问题冒出

自动测试过程中,你是不是经常遇到以下场景:

  • 设备没跑 2 小时就 offline 了,😭
  • 设备没 offline,但是,adb shell 没法用了,😰
  • ...

想办法

  • 软件方案

    • 依赖于操作系统环境,有时候用 win,有时候用 ubuntu
    • 在 win7 上尝试过禁用设备,可是没什么作用
    • 鄙人懒 + 不懂操作系统,还没找到软件实现的好办法
  • 硬件方案

    • 大学时的电子知识可以上场了,51 单片机、继电器....
    • 初步想法:在 PC 上使用 USB 转串口方式与单片机通信,再由单片机接受指令并通过 IO 口操作控制继电器,继电器接在 USB 的地线上,从而控制 USB 的断开与连接
    • BOM 表如下:
名 称 型 号 数 量 备 注 X 宝参考 URL
51 单片机 stc15f104w 1 DIP8 封装 8 脚单片机 https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-14430712417.19.UPonhl&id=36685261067
继电器 松乐 3 SRD-6VDC-SL-C https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-6778094070.65.3EOBVu&id=1743202039
USB 转串口模块 CH341 1 CP2102 https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-6778094070.33.TYRjrp&id=538236847096

扯扯

  • 老司机们一起想想呗
  • ......

未完待续,后面继续折腾...

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 10 条回复 时间 点赞

硬件方案咋样?靠谱否?

我觉得你需要先定位是硬件问题还是软件问题吧。 offline 表示硬件连接是没问题的,只是 adb 连接不上,属于软件层面的问题。

归根结底是 adb 多线程的问题. 而且此时 adb kill-server 再重新启动也不能解决该问题.
楼主所说的这种方案当初也想过, 不过没有楼主动手能力这么强,所以放弃了, 业界上有这种硬件解决方案,但是价格也比较昂贵.
最后使用 reset usb 的方案 将 usb 直接复原可以解决 offlice 的问题.

大家还有什么其他更好的方案么? 可以说来听听~

Tiper 回复

reset usb 是如何实现的?可以分享下思路吗?

甬力君 回复

https://gist.github.com/PaulFurtado/fce98aef890469f34d51

这个是别人的代码 可以参考一下.

fd = os.open(dev_path, os.O_WRONLY)
try:
fcntl.ioctl(fd, USBDEVFS_RESET, 0)
finally:
os.close(fd)

Tiper 回复

太赞了。正愁怎么解决这个问题呢。

Tiper 回复

今天 360 的同学也提到用这个办法

去试一试,希望能解决问题,多谢分享!!!

对这个问题很是关注。

甬力君 解决自动化测试设备掉线:软件方案 中提及了此贴 06月28日 17:43

usb offline 自动重置方案可以参考我这篇文章:http://www.cnblogs.com/alexkn/p/6742536.html

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