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

王小夫 · June 24, 2017 · Last by 李雷雷 replied at June 28, 2017 · 2727 hits

问题冒出

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

  • 设备没跑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的同学也提到用这个办法

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

对这个问题很是关注。

王小夫 解决自动化测试设备掉线:软件方案 中提及了此贴 28 Jun 17:43

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

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up