Android连接USB测试耗电的方法和方案设计验证步骤

    大家都知道在Android 应用日常自动化测试时,设备都是连接着USB的,由于连接USB,会导致无法在日常测试时及时感知耗电情况。用户反馈了,或者耗电专项时才会去做耗电测试,那我们有没有什么办法可以实现连接在USB充电的状态下就可以在测试时获取到耗电数据呢?

 答案是肯定的,下面是我花费2天时间折腾,探索的过程,最后有总结的方法:

方法就是使用模拟断电命令:adb shell dumpsys battery unplug 

现在就来一起探索这个断电命令执行后的数据和影响,是否可以使用:

耗电测试实现步骤探索:

一、手机连接USB后执行:(adb shell dumpsys battery unplug 探索模拟断电命令的影响)

adb shell dumpsys batterystats --enable full-wake-history

adb shell dumpsys batterystats --reset

此时手机处于充电状态,有充电图标,电量正常增加,且不执行,

adb shell dumpsys battery unplug

系统设置中省电与电池此时使用时间被清零,使用时长显示为 0时0分,无应用耗电数据。

1、正常使用手机5分钟,后观察设置省电与电池此时使用时间,仍然显示为显示为 0时0分,无应用耗电数据

2、使用清理大师5分钟后,获取大师的耗电数据:显示为空。

adb shell dumpsys batterystats com.qihoo.cleandroid_cn| findstr u0a407

u0a407:

总结:说明连接USB后,未执行模拟断电命令,无法获取应用的耗电数据。

注意:adb shell dumpsys batterystats --reset 小米手机rom14.执行这个命令有时会提示:

Security exception: Package android does not belong to 2000 并不影响重置效果

二、手机连接USB后执行:(adb shell dumpsys battery unplug 探索模拟断电命令的影响)

adb shell dumpsys batterystats --enable full-wake-history

adb shell dumpsys batterystats --reset

此时手机处于充电状态,执行:

adb shell dumpsys battery unplug

执行后,充电图标消失,手机有提示音,系统设置中省电与电池此时使用时间被清零,使用时长显示为 0时0分,无应用耗电数据。

1、正常使用手机5分钟,后观察设置省电与电池此时使用时间,0时5分,有应用耗电数据

2、使用清理大师5分钟后,获取大师的耗电数据:显示为正常耗电数据。

C:\Users\liull>adb shell dumpsys batterystats com.qihoo.cleandroid_cn | findstr u0a407

UID u0a407: 7.56 fg: 4.87 bg: 0.00768 fgs: 1.73 cached: 0.0696 ( cpu=6.72 (3m 19s 714ms) cpu:fg=4.84 (35s 111ms) cpu:bg=0.00768 (33ms) cpu:fgs=1.69 (38s 5ms) cpu:cached=0.0695 (87ms) system_services=0.706 sensors=0.0685 (9m 58s 694ms) wifi=0.0735 (1s 416ms) wifi:fg=0.0302 wifi:fgs=0.0432 wifi:cached=0.000104 )

7.56单位为mah,即为要找的耗电数据

结论:说明连接USB获取应用数据需要执行 adb shell dumpsys battery unplug 模拟断电命令 ,否则无法获取数据。

3、关屏幕充电10分钟,观察手机电量是否增加。(15:07 89% 开始)

结论:手机电量显示没有增加和减少,还是 89%,说明连接USB,可以模拟应用耗电情况,但是无法在 

Battery Historian 中观察Battery Level的趋势图

4、执行adb bugreport 导出 bugreport 实验:

 

结论:可以正常解析数据,但是时间显示不正确,需要找到原因

5、adb shell进入手机

执行 bugreportz 震动和完成,导出bugreport.zip  验证使用导入,观察是否正常

总结:和4步骤导出报告数据一样。不过也存在时间不正确问题,不知道是不是小米手机问题,后面排查

另外,使用mv 移动到sdcard后导出,文件时一致的。

6、拔下USB数据线,记录手机目前电量(例如89%),使用手机看视频一段时间观察,手机电量是否下降

结论:设置了模拟断电后,无论插拔USB,手机电量都显示不变。

adb shell dumpsys batterystats --reset 命令是用来重置电池统计信息,而不是恢复充电状态

要恢复手机的充电状态,可以使用以下命令:

adb shell dumpsys battery reset

三、验证时间报告中显示不正确问题

手机设置时间正确,手机重启后,连接USB,执行下面2个操作:

adb shell dumpsys batterystats --enable full-wake-history

adb shell dumpsys batterystats --reset

此时手机处于充电状态充电图标正常,且不执行:

adb shell dumpsys battery unplug

拔下USB,使用手机,使用清理大师一段时间5分钟左右

结论:时间使用的默认0区开始,和时间时间相差8小时,应该时系统的bug

最终总结:插着USB测试耗电需要执行 adb shell dumpsys battery unplug 模拟断电才能获取数据,电量值会保持不变,无法观察Battery Level的趋势图,测试完成需要使用 adb shell dumpsys battery reset 恢复初始,优点是可以不用专门准备测试环境。

测试步骤:依次执行

adb shell dumpsys batterystats --enable full-wake-history

adb shell dumpsys batterystats --reset

adb shell dumpsys battery unplug

执行自动化测试用例,获取耗电数据,同时导出bugreport.zip

获取耗电数据:上面验证过程有例子

adb shell dumpsys batterystats 包名 | grep  应用的uid

导出数据,上面也有实现方法。(执行 bugreportz 震动和完成,导出bugreport.zip ,都可以在脚本中实现)

adb shell dumpsys battery reset 恢复初始

完成测试。

测试耗电专项 需要拔电测试,不过最好使用无线连接的方式,这样可以执行自动化用例精确测试每个场景的耗电情况,并且不要执行 adb shell dumpsys battery unplug 操作

  • 29
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3个L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值