前端测试 穷团队测试耗电量出路

江城子 · 2017年11月13日 · 最后由 zsg5566 回复于 2017年12月05日 · 2707 次阅读

#【背景】
目前输出的 app 已经出现多次因为资源释放不当导致的异常耗电,严重的影响了用户在 F 产品使用中的体验。性能测试虽然引入了耗电量测试,但是当前的手段效率相对较低 (通过长时间使用来观察耗电状况)。

#【解决思路】

  • 软件监控 app 解决思路,目前已经有市面上的开源项目供使用,F 技术组也有针对的做了引入和优化,但是使用软件做换算,存在测试误差,且工具本身存在兼容性。
  • 硬件耗电电量测量,更可靠的方案是购买安捷伦,不过太贵了,以下使用一种相对便宜的解决方案来硬件测试耗电量。

#【耗电量测试要点】

  • 引用资源时,不存在过分的使用和无效的使用 — 表现在耗电量上,使用功能时有较高的使用电流。
  • 功能关闭时,释放掉运用的资源 — 表现在,关闭应用后,还有较高的电量消耗。【操作指南】 可变恒压电源一个,https://item.taobao.com/item.htm 某宝上 350 块的某产品一个。电压控制范围 0~15v。调整间隔 0.1V。电流进度 1ma。别问我为啥不考虑安捷伦,我都强调某宝上 350 了。

屏幕快照 2016-10-24 下午4.26.34.png

不过 0.1v 的电压精度,1ma 的电流进度对于测试来说已经足够了,这个误差已经比软件实现的测试方案高很多了。如下图,本身输出的电压也还是比较精准的。如下图,在 4v 的电压输出时,输出大约是 3.99。误差已经很小了。

屏幕快照 2016-10-24 下午4.26.42.png

操作步骤第一步,确定手机的正反接线柱。如图所示,参考电池连接的位置即可。电源关机连接线。

屏幕快照 2016-10-24 下午4.26.49.png

开机,确定输出的电压设置为 4v。如果不是 4v,按 9 增加电压,按 3 降低电压。需要说明下,通常手机电池的电压输出再 3.7~4.2。但是并不是绝对的,有的手机比如三星会到 4.35。另外说明一下,手机的电量是通过电压的变化来换算的,但是电压变化不是线性的,不同的厂商定义的计算方式都不同。会在不少手机上看到充满 100% 之后第一个百分点能用很久,或者最后几个百分点能用很久。确定连接无误之后,启动手机开机就可以了。如下图左侧显示的就是当前手机显示的耗电量了。开机后,启动本身耗电量是比较大的,等待一分钟左右,耗电量会处于一个稳定状态,如下图大约降到 209mA,这个值需要记下来,这是手机处于 idle 且开启屏幕的耗电量。

屏幕快照 2016-10-24 下午4.26.55.png

然后开始测试我们的 app,如测试某谷直销银行在启动时的耗电量。当然了本身启动的过程是不同的进程交汇的结果,耗电上自然也不是绝对的一条直线,而是有一定的抖动,这个阶段我们可以使用拍照方式,取下这段时间的数据求均值。如下面前三个图片,耗电量约在 360mA,减去 idle 状态的耗电 209,启动瞬间的耗电量大约为 150mA。而在加载完毕后,耗电量会有所下降。如下图四

屏幕快照 2016-10-24 下午4.27.01.png

屏幕快照 2016-10-24 下午4.27.06.png

屏幕快照 2016-10-24 下午4.27.11.png

屏幕快照 2016-10-24 下午4.27.17.png

刚已经有说明,耗电量测试主要是测两点,资源是不是有过渡使用,另外就是是否正确被释放。所以接下来就是分别测试 app 到后台的耗电状况,以及 app 退出的耗电状况。如下图,app 退出后,耗电量降到 213mA,和启动前相当。

屏幕快照 2016-10-24 下午4.27.23.png

在 app 使用中直接锁屏,等待若干秒后,耗电量下降到 5mA。不要问我为什么之前耗电不是要看半小时用多少电量么。那我得说,距离等于速度乘以时间。

屏幕快照 2016-10-24 下午4.27.30.png

iOS 的操作也是一样的,发个截图瞅瞅

屏幕快照 2016-10-24 下午4.27.36.png

共收到 36 条回复 时间 点赞

一般肯花钱的上的是安捷伦,省钱怎么也得上 PowerMonitor。年初兼顾手机基础体验测试时,下面的功耗续航组主要就是用的 PowerMonitor(都是美国代购回来的),当时还带着做了 PowerMonitor 的自动化测试方案。

剪烛 回复

嗯 是的 用什么工具 用什么方法 全看应用场景了,杀鸡没必要牛刀,可牛刀同时也砍不到大象。我这里也是针对 APP 场景耗电量 100-500mA 的,那量化间隔误差在千分之五到千分之一,针对我的需求是够了的。如果是针对终端,特别是测试待机之类的,这个误差就比较大了。

我去 做个测试连电表都整起了,至于么,不觉得麻烦啊

江城子 回复

其实最主要是研发认可测试结果,研发提出需要至少 PowerMonitor 的测试结果,做硬件及 rom 不同于 app,硬件数据上有精度和底线需求。

= =最近也在整手机电量,看了楼主的帖子好心动,后来想了想,感觉还是精度稍显不够。我们这边对接过华为的终端测试实验室,mA 为单位的话,就已经精确到了小数点后三位。尤其是测试待机这种耗电量极小,耗时长的情况下,精度 1mA 还是不够。

剪烛 回复

liuhuizhong970 微信 rodman1985

槽神 回复

而且如果自己动手做个移动测试平台手机管理的,都知道一个问题,那就是长时间联线充电线,很容易造成手机过充甚至电池爆炸。干掉电池,直接恒流源操作就靠谱多了。也诚如你说的,后续直接上继电器,搞远程控制。

槽神 回复

平安金科有钱,测试团队没钱,这很正常啊。

江城子 回复

其实一般情况用万用表也够了,好的仪器就是精度高些,然后配合软件可以实时输出图表数据曲线。

舍得花钱买表的不算穷吧。。。

平安金融科技,你也说穷团队,这个世界上是不是只有 MS、google、fb、阿里才能算小康了?

拆机好心疼,比较好奇这种资源占用翻译电量耗损的原理应该可以枚举吧,比如 cpu 一直在跑,gps 定位一直在跑,用白盒的方式来看,会不会好一点?

恒温 回复

很多团队做移动端测试实验室都是这么干的,我知道的就有 google(Dennis 说的)、Marvell(前测开 leader Tracy),拆掉电池通过继电器连充电线,这样死机或者无响应,都可以远程断电重启~
骚操作,我喜欢~

蒋刚毅 回复

说白了就是:技术好谁还愿意掏钱用 oracle 啊😂

恒温 回复

通过 CPU GPU 屏幕使用率换算耗电量的工具也做过,总得来说还是不准。我们自己的 UI 自动化平台也会在跑自动化的时候读取电量损耗。
另外我是个怎么便宜怎么来的人,这里直接选择买个恒压电源(淘宝 130 块)2 小时完成安装,这样很便宜,对于需要快速获取(本品竞品)数据。这个东西就速度多了。

围城 回复

那是恒流源 不是电表。

江城子 回复

恩恩,点头😀 楼主来个 um,快乐平安加个好友呀

耗电量的标准呢?耗电多少需要优化,耗电多少不需要优化?

最近打算用小米插座,控制手机防过充。_^

江城子 回复

过充?电池都拆掉了,充给谁?

槽神 回复

兄弟你能好好断句么,我的意思是说,如果做移动测试平台仍旧持续用电池供电并连着数据线的,这种方式容易过充,导致手机爆掉。

江城子 回复

😂
我就想知道真有人这么干么,好吧,我自己回答:有!

槽神 回复

我们最早测试魔盒的时候这样做过,搞了安捷伦

当年花过几万买了台安捷伦的功耗仪,准确率是比软件要高,就是比较费劲。

蒋刚毅 回复

嗯 安捷伦贵啊,买不起,所以只好一百多的恒流源自己上手了

F 项目不算穷了,,之前还经常去你们那借机器。。

小胖。 回复

那是锋哥给力,后来申请到了费用支持设备采购,开始的时候都靠自己带的手机做测试。

江城子 回复

是的. 做手机实验室需要拆掉电池, 不然长期充电电池就首先坏掉. 几乎一个月就膨胀损坏. 这里面还是挺多技术活的.

浮云 回复

羡慕你们老板肯支持,我们申请台服务器做 APP 打包服务器都磨了半年。

心向东 回复

用港版

浮云 回复

PowerMonitor 的自动化测试方案? 这种硬件是怎么和自动化结合的?

槽神 回复

断电还能重启手机? 你教我 怎么重启。。。。默认来电是充电模式

zsg5566 回复

主要是解决大部分功耗 case 的自动化:PowerMonitor 自身控制脚本 + 手机端 case 后台操作脚本(uiautomator、shell)+ 数据线加继电器改造(继电器控制通断脚本)+ 报告统计脚本。
主要执行步骤:
1、初始化 PowerMonitor 电源参数(由外部变量状态控制监控数据的存储,最初用的环境变量后改成了文件便于多设备并发,监控文件已 csv 保存),初始化手机的必要设置及环境状态
2、调度用的主脚本用于执行用例后断开数据线的继电器,之后修改文件内变量(通知 PowerMonitor 开始保存监控数据到 case 结果文件夹)
3、等待用例操作结束 (预调试好的等待时间),通知 PowerMonitor 停止记录并恢复数据线连接及获取 case 执行结果和 log 到 case 结果文件夹
4、回到第二步按照配置的 loop 和 case list 完成测试
5、此时的测试结果是分 case 文件夹保存的,包括 PowerMonitor 监控结果、case 执行结果和 log;通过报告脚本统计分析生成报告。(传入可配置的 goal 值 csv 文件用于统计)

当时试跑报告形式如下,可选 case 及 loop 数查看该次的 PowerMonitor 电流数据图

浮云 回复

好完整的介绍,赞!

浮云 回复

很详细,谢谢! 有时间尝试做下这套

codeskyblue [该话题已被删除] 中提及了此贴 12月09日 16:17

@shixue33 华为就是安捷伦

codeskyblue 通过电池电量评测安卓 App 的耗电水平 中提及了此贴 12月09日 19:39
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册