[Android] 基于WLAN无线执行自动化方法-阿里云开发者社区

开发者社区> awesome@qa> 正文

[Android] 基于WLAN无线执行自动化方法

简介: 背景: 由于公司要测试APP 产品的耗电问题,我们采取的办法很low,对各个模块功能进行大量的手动测试,再通过Emmagee或GT得出来的结果来评估产品耗电,流量,CPU,内存的消耗等。由于手工效率太低,而且不准确,我们就决定用自动化来实现,但用自动化又面临了一个USB接电脑供电的问题,从而导致计算出来的功耗与手动跑的有很大的误差。
+关注继续查看

背景:

由于公司要测试APP 产品的耗电问题,我们采取的办法很low,对各个模块功能进行大量的手动测试,再通过Emmagee或GT得出来的结果来评估产品耗电,流量,CPU,内存的消耗等。由于手工效率太低,而且不准确,我们就决定用自动化来实现,但用自动化又面临了一个USB接电脑供电的问题,从而导致计算出来的功耗与手动跑的有很大的误差。

1、将 Android 设备和 adb 主计算机连接到这两者都可以访问的常用 WLAN 网络。
注意,并非所有访问点均适用;可能需要使用已正确配置防火墙的访问点以支持 adb 的访问点。
注:如果您尝试连接到 Android Wear 设备,则通过关闭与其连接的手机的蓝牙强制将它连接到 WLAN。

2、使用 USB 电缆将设备连接到主计算机。

3、设置目标设备以侦听端口 5555 上的 TCP/IP 连接。

didi@localhost  ~  adb devices
List of devices attached
68de2f65 device
 
didi@localhost  ~  adb tcpip 5555
restarting in TCP mode port: 5555

4、从目标设备断开 USB 电缆连接。

5、查找 Android 设备的 IP 地址。例如,在 Nexus 设备上,您可以通过访问 Settings > About tablet(或 About phone) > Status > IP address 查找 IP 地址。或者,在 Android Wear 设备上,您可以通过访问 Settings > Wi-Fi Settings > Advanced > IP address 查找 IP 地址。

6、连接至设备,通过 IP 地址识别此设备。

didi@localhost  ~  adb connect 172.22.139.35
connected to 172.22.139.35:5555

7、请确认您的主计算机已连接至目标设备:

didi@localhost  ~  adb devices
List of devices attached
172.22.139.35:5555 device

8、更改datest - capabilities中手机的udid:

capability="sm_g9300-68de2f65"
capabilities[capability] = {}
capabilities[capability]['platformName'] = 'Android'
capabilities[capability]['platformVersion'] = '7.0'
capabilities[capability]['deviceName'] = '68de2f65'
# capabilities[capability]['udid'] = '68de2f65'
capabilities[capability]['udid'] = '172.22.139.35:5555'
capabilities[capability]['appPackage'] = 'com.sdu.didi.psnger'
capabilities[capability]['appActivity'] = 'com.didi.sdk.app.launch.DidiLoadDexActivity'
capabilities[capability]['noReset'] = 'true'
capabilities[capability]['newCommandTimeout'] = 300
capabilities[capability]['command_executor'] = "http://127.0.0.1:4723/wd/hub"
capabilities[capability]['recreateChromeDriverSessions'] = 'true'
capabilities[capability]['unicodeKeyboard'] = 'true'
capabilities[capability]['automationName'] = "uiautomator2"
# capabilities[capability]['systemPort'] = 8201

现在,可以开始操作了!

PS:
如果 adb 连接丢失:
请确保您的主机仍与您的 Android 设备连接到同一个 WLAN 网络。
通过再次执行 adb connect 步骤重新连接。
如果无法连接,则重置 adb 主机:

didi@localhost  master ●  adb kill-server

然后,从头开始操作。

经测试,脚本运行的速度和有线并无太大的差异,无线启动appium感觉比有线稍微慢,大概在10秒左右,在可以接受范围。

至此,我们已经可以解决这几个问题了:
1、我们不必非要连接数据线做安卓的自动化测试
2、我们可以更精确的来衡量功耗的使用
3、手机电池寿命更长

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
[Android] 基于WLAN无线执行自动化方法
背景: 由于公司要测试APP 产品的耗电问题,我们采取的办法很low,对各个模块功能进行大量的手动测试,再通过Emmagee或GT得出来的结果来评估产品耗电,流量,CPU,内存的消耗等。由于手工效率太低,而且不准确,我们就决定用自动化来实现,但用自动化又面临了一个USB接电脑供电的问题,从而导致计算出来的功耗与手动跑的有很大的误差。
687 0
AngularJs中,如何在render完成之后,执行Js脚本
AngularJs是Google开源的前端JS框架。使用AngularJs, 我们能够容易地、健壮的开发出类似于Gmail一样的单页Web应用。AngularJs这个新兴的MVC前端框架,具有以下特点: MVC, 模块化,自动化双向数据绑定,语义化标签、依赖注入等。
728 0
+关注
awesome@qa
百度外卖用户端测试团队负责人,负责团队技术发展规划以及项目质量保障。负责设计并开发自动化测试框架与工具,帮助团队提升测试的质量和效率。深入理解持续集成体系建设,对质量体系有深刻的理解和积累。
99
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载