随着移动浪潮的兴起,耗电量越来越受到测试人员的重视,传统的手工测试方式太过于耗费人力,然而自动化的方式又存在不少问题,但是这始终难不倒聪明的人类:有人借助电流仪等仪器实现自动化,有人则通过在数据线之间接入控制元件实现自动化。。。
这里,我要说的是另外一种方式,通过借助小米智能插座实现耗电量的自动化测试。
小米智能插座--一种能在手机上控制插座开关的设备
手机通过wifi连接电脑,adb命令通过wifi传输执行,智能插座可通过wifi执行用例打开和关闭,测试场景也可通过wifi执行用例进入。具体流程如下:
1. android环境就不说了,这是必须的
2. 通过wifi连接电脑和手机:
手机和电脑连接同一局域网,手机通过usb线连接电脑
adb tcpip 5555
adb connect 192.168.1.101 (Android设备IP地址)
3. 安装米家(智能插座的控制app),智能插座连接wifi(方法见说明书)
4. 将手机通过usb线接在智能插座上
5. 编写智能插座开关用例
1. 等待电量充满且温度降到某个指定值,使用如下命令读取电量和温度:adb shell dumpsys battery
2. 打开/关闭屏幕
先判断屏幕状态 adb shell "dumpsys battery | grep 'Display Power:'" 返回结果中包含Display Power: state=OFF,则处于锁屏状态;Display Power: state=ON,屏幕处于打开状态,如果处于锁屏状态,执行adb shell input keyevent 26点亮屏幕(打开和关闭使用同一命令)
3. 执行智能插座开关用例,关闭电源开关
需要注意的是,用例执行可能失败,所以在执行用例之后,还需要判断手机是否已经断电,如还处于充电状态,可以通过再次执行用例关闭智能插座
4. 清除之前的耗电数据并重新开始采集
adb shell dumpsys batterystats reset
adb shell dumpsys batterystats --enable full-wake-history
5. 执行用例进入测试场景
6. 计时等待
7. 结束采集,提取耗电数据,生成的txt文件可通过google的battery-historian转换为html报告,使用方式自行搜索。
adb bugreport > d:/report.txt
adb shell dumpsys batterystats > d:/batterystats.txt
8.执行智能插座开关用例,打开电源开关
众所周知,oppo设备对于开发者来说,那体验真是没的说。使用这个方案在oppo设备上测试时,会发现数据只有前几分钟的,计时结束之后,你也无法再重新打开智能插座的开关,这是因为oppo设备的usb调试超过10分钟未使用就会自动关闭。。。
那么,oppo设备是怎么判断有没有使用usb调试呢?我们在多次的测试之后,发现它仅仅是以设备是否处于充电状态来判定。这样我们可以通过修改电池充电状态来骗过oppo的自动关闭usb功能,使用命令adb shell dumpsys battery set ac 1修改电池充电状态,然后在计时结束之后恢复电池状态adb shell dumpsys battery reset。
原 文: TesterHome
作 者:mrx102
来源: https://sdk.cn/news/7690