1.功耗测试关注点
- CPU占用
- Memory占用
- 电量消耗
2.测试方法
准备工作
为避免测试过程中连接USB充电,所以用WIFI的方式连接手机调试 1.重启adbd监听tcp 端口 5555 adb tcpip 5555 2.通过wifi连接手机 adb connect <IP>:5555 3.断开数据线
手机唤醒配置
1.唤醒时间间隔设置为1分钟 2.唤醒次数设置为999 3.手机保持灭屏状态,每隔10秒(可配置)进行一次亮灭屏
CPU占用
1.一定时间内(时间可配置)每隔几秒(可配置)取一次CPU信息数据:adb shell top -s cpu -n 2 -d 1 2.解析对应进程名的CPU占用信息 3.保存CPU占用信息 4.10分钟之后统计数据,并将数据以直方图或者曲线图的形式展示出来
Memory占用
1.一定时间内(时间可配置)每隔几秒(可配置)取一次Memory信息数据:adb shell dumpsys meminfo proc_name 2.解析对应的Native Heap 和 Dalvik Heap 3.保存Memory占用信息 4.10分钟之后统计数据,并将数据以直方图或者曲线图的形式展示出来
电量消耗
1.设置手机连接数据线不充电:adb shell dumpsys battery set usb 0 1.测试开始之前杀掉所有第三方应用进程。 2.初始化配置 3.记录当前电量 4.执行测试 5.测试完毕记录当前电量,获取电量消耗值
宿主功耗测有插件与没有插件两种情况,用以对比插件工作时的功耗情况。
3.自动化测试工具使用
- Git 仓库地址:
http://gitlab.baice100.com/liyanqing/wake_performance - 代码下载:
[email protected]:liyanqing/wake_performance.git 使用方法:
1.修改/wake_performance/src/data/config/data_config.json 配置需要唤醒的应用及频次 2.将要测试的唤醒插件放在/wake_performance/src/data/sdk 目录下 3.设置手机以wifi的方式连接电脑(假设手机IP为172.21.53.188) a.adb -s <serial number> tcpip 5555 b.adb connect 172.21.53.188:5555 c.手机断开连接 d.adb devices List of devices attached IJ999DV8KVSGLJHI device f01213bb device 172.21.53.188:5555 device 4.在/wake_performance/src/data/config/job_config.json配置文件中填写被测手机的IP及端口号"serial": "172.21.53.188:5555" 5.在/wake_performance/src/data/config/job_config.json配置文件中配置测试执行时间,亮灭屏时间间隔,以及数据获取时间间隔 6.启动测试: a.如果在PyCharm中直接运行test_device.py b.如果在控制台,需要首先进入工程目录:wake_performance下执行命令:python -m unittest src.test.test_device.TestDeviceHelper 7.结果查看: 结果保存在工程下/src/data/results下 ├── results │ ├── test-2019-08-23-16-12.log │ ├── with_plugin #有插件时结果目录 │ │ ├── 2019-08-23-16-13 │ │ │ ├── battery.csv # 电量消耗信息 │ │ │ ├── cpu_info.csv # cpu占用数据 │ │ │ ├── cpu_info.jpg # cpu占用数据图 │ │ │ ├── dalvik_heap.csv # dalvik内存占用信息 │ │ │ ├── dalvik_heap.jpg # dalvik内存占用信息图 │ │ │ ├── native_heap.csv # Native内存占用信息 │ │ │ └── native_heap.jpg # Native内存占用信息图 │ ├── without_plugin # 插件被销毁时的测试结果 │ ├── 2019-08-23-16-14 │ │ ├── battery.csv │ │ ├── cpu_info.csv │ │ ├── cpu_info.jpg │ │ ├── dalvik_heap.csv │ │ ├── dalvik_heap.jpg │ │ ├── native_heap.csv │ │ └── native_heap.jpg