Appium 通过无线连接的方式来做 Appium 自动化

Vincent · 2014年09月11日 · 最后由 YY 回复于 2021年01月12日 · 764 次阅读
本帖已被设为精华帖!

感谢 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,手机电池寿命更长。。。。哈哈哈
等等,相信还有很多好处。。
再次感谢各位大牛,文采不佳,大家凑合着看。

共收到 32 条回复 时间 点赞

哈哈,有意思。 其实 不管有线无线。 对于 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

@gghappy @mggao
不好意思哈,方案中包含了很多公司产品的信息,这块不能分享给大家。
大概的思路 就是 我们通过模拟用户的常用操作,比如微信,通过发送大量的信息,图片,名片,大 size 的文件,来定位某个模块 消耗的功耗,流量,温度,内存以及 CPU 等等,还有很多指标。

感谢分享,ios 的设备怎么无线连接呢?

真的很赞

adb tcpip 就搞定了,不需 Root。

81—1 回复

adb tcpip 后 通过 adbconnect 时,一直报超时问题

小白 回复

先 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 提示设备找不到

jie 回复

请问 iPhone 下无线方式解决了吗?

conan 回复

IOS 有无线解决方案么

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