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

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: 背景: 由于公司要测试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、手机电池寿命更长

相关实践学习
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
25天前
|
机器学习/深度学习 并行计算 算法
深度学习中的自动化超参数优化方法探究
传统的深度学习模型优化通常依赖于人工调整超参数,这一过程繁琐且耗时。本文探讨了当前流行的自动化超参数优化方法,包括贝叶斯优化、遗传算法和进化策略等,分析它们在提高模型效率和性能方面的应用与挑战。
|
25天前
|
Android开发 iOS开发
android自动化编译
android自动化编译
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索软件测试的未来:AI 驱动的自动化测试方法
【5月更文挑战第29天】随着人工智能(AI)技术的不断发展和成熟,其在软件测试领域的应用也日益广泛。本文旨在探讨 AI 如何改变软件测试的面貌,特别是自动化测试方法。我们将分析当前自动化测试的挑战,并介绍 AI 如何提供解决方案,包括智能化测试用例生成、测试执行优化、以及结果分析等。通过实际案例研究,我们还将讨论 AI 在提高测试效率、减少错误和提升软件质量保障中的作用。最后,文章将预测 AI 在自动化测试领域的未来趋势,并提出对测试工程师的建议。
|
1天前
|
Android开发
Android面试题之View的invalidate方法和postInvalidate方法有什么区别
本文探讨了Android自定义View中`invalidate()`和`postInvalidate()`的区别。`invalidate()`在UI线程中刷新View,而`postInvalidate()`用于非UI线程,通过消息机制切换到UI线程执行`invalidate()`。源码分析显示,`postInvalidate()`最终调用`ViewRootImpl`的`dispatchInvalidateDelayed`,通过Handler发送消息到UI线程执行刷新。
11 1
|
12天前
|
jenkins 数据管理 测试技术
在LabVIEW开发生命周期中提高代码质量的自动化测试方法
在LabVIEW开发生命周期中提高代码质量的自动化测试方法
10 0
|
17天前
|
XML Android开发 数据格式
Android AppCompatActivity 方法详解
Android AppCompatActivity 方法详解
12 0
|
2月前
|
安全 物联网 测试技术
构建未来:Android与IoT设备的无缝交互深入探索软件自动化测试的未来趋势
【5月更文挑战第30天】在物联网(IoT)技术快速发展的当下,Android系统因其开放性和广泛的用户基础成为了连接智能设备的首选平台。本文将探讨如何通过现代Android开发技术实现智能手机与IoT设备的高效、稳定连接,并分析其中的挑战和解决方案。我们将深入挖掘Android系统的底层通信机制,提出创新的交互模式,并通过实例演示如何在Android应用中集成IoT控制功能,旨在为开发者提供一套可行的指导方案,促进IoT生态系统的进一步发展。
|
2月前
|
测试技术 UED
软件测试中的自动化与手动方法比较
【5月更文挑战第31天】本文将探讨软件测试中自动化和手动方法的优缺点,以及它们在不同场景下的应用。通过比较这两种方法,我们将了解它们各自的优势和局限性,并提供一些建议来帮助选择适合特定项目的测试策略。
|
24天前
|
缓存 大数据 Android开发
Android 巧用putBinder方法传递大文件
Android 巧用putBinder方法传递大文件
30 0
|
25天前
|
Java Android开发 Python
自动化编译错误 cocos2dx 3.0beta2 android
自动化编译错误 cocos2dx 3.0beta2 android