最近,公司内校招生轮岗。开发人员需要去测试部门轮岗工作一周。本文记录一下,在测试方向的一些实践。
资料:安卓性能测试浅谈:https://testerhome.com/topics/17981
大致内容:安卓性能测试包括“耗电”、“流量”、“内存”、“流畅度”等。
其中,耗电测试需要测量:
1)检测App是否有耗电问题;
2)记录此次版本App的耗电数据,用于判断此次版本在耗电方面是否有恶化;(cpu耗电、wake lock耗电、4g耗电、Wifi耗电、传感器耗电等)
方案:通过
adb
命令获取bugReport
资料,上传给由Google开源的Battery Historian
工具分析。
首先,配置本地Battery Historian环境:(Battery Historian源码地址)
使用Docker配置,简单方便:
-
安装Docker:官网地址
-
用终端搜索镜像:
docker search battery
- 下载:
docker run --name=battery -d -p 9999:9999 bhaavan/battery-historian
有vpn可以使用:
docker run -p port_number:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999
等待安装完成即可。
开始操作:
-
用USB链接安卓手机;
-
清空电量历史数据:
adb shell dumpsys batterystats --enable full-wake-history
- 重置电量数据:
adb shell dumpsys batterystats --reset
-
拔下USB;
-
一顿操作后;
-
再用USB链接手机;
-
导出数据包:
安卓7.0及以上使用:
adb bugreport bugreport.zip
安卓6.0以下使用:
adb bugreport > bugreport.txt
-
把包导入Battery Historian进行分析。
配置好Battery Historian环境后,可以使用本地服务localhost:9999访问本地服务。(也可以使用外网服务 https://bathist.ef.lc/ ) -
分析
bugreport
数据。
如下图:
参数名 | 含义 |
---|---|
CPU running | cpu运行的状态,是否被唤醒 |
Kernel only uptime | 只有内核运行时间 |
Userspace wakelock | 该属性是记录wake_lock模块的工作时间。是否有停止的时候等。(ps:系统为了节省电量,CPU在没有任务忙的时候就会自动进入休眠。有任务需要唤醒CPU高效执行的时候,就会给CPU加wake_lock锁。) |
Screen | 屏幕是否点亮。 可以用于考虑睡眠状态和点亮状态下电量的使用信息。 |
Top app | 该栏显示当前时刻哪个app处于最上层,就是当前手机运行的app。 |
JobScheduler | 异步作业调度 |
Wifi scan | 是否在扫描wifi信号 |
Wifi supplicant | 是否有wifi请求 |
Wifi radio | 是否正在通过wifi传输数据 |
Wifi signal strength | wifi信号强度(great\good\moderate\poor) |
Wifi running | wifi组件是否在工作(未传输数据) |
Wifi on | wifi组件是否打开(未传输数据) |
Audio | 音频是否开启 |
Foreground process | 前台进程 |
Battery Level | 电量,可以看出电量的变化。 |
Coulomb charge | 电池的当前容量。 |
Temperature | 电池温度 |
Plugged | 充电状态,这一栏显示是否进行充电,以及充电的时间范围。 |
Charging on | 在充电 |
Brightness | 屏幕亮度 |
Charging status | 充电状态 |
Package active | 包活跃 |
Plug | 充电方式,usb或者插座,以及显示连接的时间。 这一栏显示了不同的充电方式对电量使用的影响。 |
voltage | 电压 |
Health | 电池健康状态 |
网友评论