感谢 TesterHome 里各种大牛,提出的宝贵思路,我这里只是将他们的想法综合了一下,试出来的成果,谢谢大家分享你们的智慧。
简单说下背景:
由于公司要测试 APP 产品的耗电问题,我们采取的办法很 low,对各个模块功能进行大量的手动测试,再通过 Emmagee 或 GT 得出来的结果来评估产品耗电,流量,CPU,内存的消耗等。由于手工效率太低,而且不准确,我们就决定用自动化来实现,但用自动化又面临了一个 USB 接电脑供电的问题,从而导致计算出来的功耗与手动跑的有很大的误差。
万般寻找,终于在 Testerhome 里等到牛人给了我解决的思路和方案,感受颇深,仅仅的几个字就解决了我的问题,而且很优雅。
直入主题。
我们通常做安卓自动化的时候,总是需要将手机连接到电脑,直到@cjtcwyk 提出的可使用 adb connect 命令来实现无线连接手机,一听到果断入手搜索相关 APP,走完一遍流程,原来是如此的简单。
我们可以在商店里面下一个叫 Wireless ADB(下图为豌豆荚),安装完关闭豌豆荚
安装完后图标如下:
接下来至少要保证 2 件 事情:
1,确保手机已经 Root 了
2,手机和 PC 要在一个网段 (从 PC 端可以 ping 通手机端的 IP 地址)
这 2 件事情办好就好办多了,打开安装后的 Wireless ADB.
勾中 Wireless ADB 的 checkbox,后它就认为是开启了
当然这里我们还可以设置它的端口,默认为 5555
下一步开始通过无线来连接手机,在 PC 端 CMD 下 输入你手机的 IP 地址和它的端口号后回车
成功连接上。
如果出现了 not implement 这个错误,请关掉豌豆荚,360 等软件,很可能是有冲突
连接成功后,就可以开始正常的自动化工作了。
启动 appium 和 adb connect
无线启动 appium 感觉比有线稍微慢一点点,大概也就 10 来秒,可以接受范围
成功无线运行脚本测试 APP.
差不多就这些了,经测试脚本运行的速度和有线并无太大的差异
至少我们可以解决这几个问题:
1,我们不必非要连接数据线做安卓的自动化测试(感觉演示的时候会很酷...)
2,我们可以更精确的来衡量功耗的使用
3,手机电池寿命更长。。。。哈哈哈
等等,相信还有很多好处。。
再次感谢各位大牛,文采不佳,大家凑合着看。
哈哈,有意思。 其实 不管有线无线。 对于 adb server 而言都是一样的。
@lihuazhang
哈哈,确实。。多一种方式,就多一种乐趣啊。
不错,从论坛得到的最后又分享出来,这就是开源精神!
这个大赞~这个就是回馈啊~
这个无线连接, 可以大做文章的, 之前用它做了很多的试验. 如果创建一个 ***, 其实就可以通过无线来控制很多终端了
PC 端要装无线网卡吗?没有的话 ping 不通的吧。
哈哈哈,谢谢大家鼓励,确实很不错的功能。
@htmlbiji 无须 PC 端安装无线网卡,只用保证 PC 和 手机端,在同一个网络即可。
PC 的网段好查看,手机的网段 可以在无线连接里设置。
试验了,已经成功,赞
赞一个,太棒了
@seveniruby Appium 连接 grid 怎么测试 app, 我连接上了可以测试浏览器,但是测试不了 app
这个好顶赞。。
给你 32 个赞
无线连接挺好的,特别是用真机跑时, 但稳定性如何,估计得观察~
豌豆荚,应用宝等手机管理工具的无线连接,也应该和这是一个道理吧
@pajack
稳定性方面,虽然没有长时间测试,但经过这几天的运行情况,在 wifi 稳定的情况下,表现还是很稳定的,和连接数据线无太大的区别。
@xiaomayi0323
感觉和豌豆荚和其它无线连接的方式不是一个套路。
我们起初尝试过用豌豆荚无线连接,可是在 adb devices 里面找不到设备列表,反之用 wireless adb 是可以 通过 它来连接上设备的,可能原理上还是有区别。
希望大牛们指出 异同。
#16 楼 @seasoncool2011
真心不错,我现在也可以跑起来,以后做演示就方便啊
#7 楼 @seasoncool2011 实际上不在一个网段也是可以的,只要在同一个网络里就可以,在我公司只要都在内网上都没问题
好东西,稍后我也尝试下这种方案,谢谢。
具体耗电量的测试方案 是否可以分享一下呢? 我的邮箱 gghappy360@126.com 谢谢!
这个赞,可否分享下耗电量测试方案。403937185@qq.com
感谢分享,ios 的设备怎么无线连接呢?
真的很赞
adb tcpip 就搞定了,不需 Root。
先 adb kill-server 试试
手机和 PC 能 ping 通
1.手机 USB 连 PC
$ adb tcpip 5555
2.拔掉 USB,连接手机的 ip
$adb connect 192.168.xx.xxx
以上就 ok 了,可以试试 adb deivces,应该能看到了,192.168.xx.xx:5555 的设备。
如果需要恢复使用 USB 方式
$adb usb
这个办法安卓可以,iPhone 手机如果通过 wifi 连接的方式来做呢???
您好,iPhone 手机如果通过 wifi 连接的方式来做呢???
对,iOS 真机如何做呢,我现在实现了用 xcode 在无线环境下,编译运行 app,wda 运行到真机后,启动 appium 提示设备找不到
你好,请问一下,我用无线连接安卓设备后,python+appium 可以启动 app,但是对于模拟操作无法执行,例如 find_element() 查找元素方法等,就无法执行,请问遇到类似情况的么?