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

Vincent · September 11, 2014 · Last by jie replied at December 17, 2018 · 4019 hits
本帖已被设为精华帖!

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

共收到 30 条回复 时间 点赞

哈哈,有意思。 其实 不管有线无线。 对于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提示设备找不到

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