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

rodman1985 · 发布于 2017年11月13日 · 最后由 sandman 回复于 2017年11月15日 · 743 次阅读

#【背景】
目前输出的 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

共收到 30 条回复
110

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

5895
110Lihuazhang 回复

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

11622

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

16280

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

5895
16280fudax 回复

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

16280
110Lihuazhang 回复

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

5895
11622shayang888 回复

那是恒流源 不是电表。

5895
16280fudax 回复

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

16280
5895rodman1985 回复

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

5895
rodman1985 · #10 · 2017年11月14日 作者
16280fudax 回复

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

16280
5895rodman1985 回复

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

110
16280fudax 回复

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

1522fe

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

5895
rodman1985 · #14 · 2017年11月14日 作者
1522fecay 回复

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

1522fe
5895rodman1985 回复

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

16280
1522fecay 回复

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

4481

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

5895
rodman1985 · #18 · 2017年11月14日 作者
4481hxbjava 回复

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

609

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

104
5895rodman1985 回复

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

Ee76af

@shixue33 华为就是安捷伦

5895
rodman1985 · #22 · 2017年11月14日 作者
609shixue33 回复

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

609
5895rodman1985 回复

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

3623

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

6853
104seveniruby 回复

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

5895
rodman1985 · #26 · 2017年11月14日 作者
609shixue33 回复

liuhuizhong970 微信rodman1985

Eaa7e1

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

982

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

5895
rodman1985 · #29 · 2017年11月15日 作者
982sandman 回复

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

982
5895rodman1985 回复

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

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册