IOS手机耗电量测试

1. 耗电量原始测试方法

1.1 方法原理:

根据iPhone手机右上角的电池百分比变化来计算耗电量。

1.2实际操作:

在iOS通用设置中打开电池百分比数值显示,然后操作30分钟,60分钟,90分钟,看开始时和结束时电池百分比数值的差值。

1.3 优缺点分析:

1、电池百分比数据非常粗略,并且电池从90%掉电至80%与80%掉电至70%不一定相等

2、测试时需要关闭手机所有后台应用除待测应用外,但统计的耗电量仍然把亮屏耗电、通讯模块耗电都统计进去,因此会发现OLED和LCD屏幕的手机耗电量不一样,使用wifi模块和3G网络的耗电量不一样

**综上所述:**如果耗电量是看整个手机的耗电情况,那么受影响的因素比较多,干扰大,无法准确得出被测应用的真实耗电数据。

2. 耗电量文艺测试方法

2.1方法原理:

从iOS8系统开始,iPhone手机在电量选项中会看到前后台运行时长和电池消耗占比数据(如下图所示),这些数据会自动收集在iPhone手机数据库里,并会上报给苹果服务器,因此通过HTTP劫持工具可以截获手机上报的这些数据。

2.2实际操作:

步骤1:在iMac机上安装HTTP劫持工具mitmproxy,打开iMac机上的终端命令输入界面,然后输入以下命令:

sudo easy_install php

sudo pip install mitmproxy

注:使用mitmproxy原因是支持手机端,并且有Mac版本,比Fiddler、HttpWatch要方便很多。

步骤2:将解析HTTP请求并保存文件的capture.py脚本放置在iMac机上,然后运行命令:

mitmdump -s "capture.py --bat"

步骤3:将待测手机和iMac都连接到同一个wifi网络下,然后打开手机中的wifi设置,设置手机的HTTP代理服务器IP为iMac的IP,端口为8080(如下图所示)

步骤4:打开iPhone手机上的Safari,输入****http://mitm.it****,选择苹果图标并安装mitm证书,证书只需首次测试时需要安装。

步骤5:回到Safari浏览器,输入diags://进入iOS诊断信息界面,在报告编号中输入:123456,点击扩展测试(如图1所示),待该界面左上角出现"完成"后,在capture.py的相同目录会出现power-YYYYMMDD-hhmmss.tar.gz的压缩文件(如图2所示)

步骤6:双击ID开头的文件,会出现以PLSQL结尾的文件,可以通过MesaSQLite打开,切换到"SQL Query"选项页,输入SQL语句即可。

​以上红框的记录表明:2015年10月23号,com.qq.tencent.dailybuild进程在8:00至9:00在3600秒时间内耗电量为436.9832mW/h。

查看后台运行时长的SQL语句:

select datetime(timestamp, unixepoch','localtime') AS Time,* from PLAppTimeService_Aggregate_AppRunTime where BundleID= 'com.tencent.qq.dailybuild';

查看耗电量的SQL语句:

select datetime(timestamp,'unixepoch','localtime') as time, * from PLBLMAccountingService_Aggregate_BLMAppEnergyBreakdown where BLMAppName='com.tencent.qq.dailybuild';

查看温度的SQL语句:

select datetime(timestamp,'unixepoch','localtime') as time, * from PLBatteryAgent_EventBackward_Battery;

2.3 优缺点分析:

优点:

1)此方法获取的数据即iOS系统统计的数据,因此数据具备较强的说服力;

2)能够获取应用的耗电量数据,不再是统计整机的耗电量。

**缺点:**最短只能统计1个小时内的耗电量数据,对于响应时间较快操作的耗电量建议还是用powermonitor进行测试。

3. 常见问题

问题:在mitmdump运行capture.py出现command not found提示怎么办?

​解答:出现mitmdump指令查找不到说明mitmproxy安装有问题,需要运行sudo pip install mitmproxy重新进行mitmproxy的安装。

问题:在安装mitmproxy出现libxml/xmlversion.h file not found提示,怎么解决?

解答:这是在安装依赖包lxml报错,首先根据警告执行下图红框的命令,然后再执行xcode-select --install命令

问题:为什么在手机的QQ浏览器或UC浏览器中输入****http://mitm.it****没有看到mitm证书安装界面?

解答:必须要在iPhone手机的Safari浏览器中输入地址,同理diags://也必须要在Safari浏览器中输入。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
珂朵莉MM1 小时前
2021 RoboCom 世界机器人开发者大赛-高职组(初赛)解题报告 | 珂学家
java·开发语言·人工智能·算法·职场和发展·机器人
明月看潮生1 小时前
青少年编程与数学 01-011 系统软件简介 07 iOS操作系统
ios·青少年编程·操作系统·系统软件
前端小崔3 小时前
前端面试题之ES6保姆级教程
开发语言·前端·javascript·面试·职场和发展·ecmascript·es6
90后的晨仔3 小时前
RxSwift 框架解析
前端·ios
半导体守望者3 小时前
ADVANTEST R3764 66 R3765 67爱德万测试networki connection programming网络程序设计手册
经验分享·笔记·功能测试·自动化·制造
第三方软件测评4 小时前
软件功能测试报告都包含哪些内容?
功能测试
有风南来4 小时前
算术图片验证码(四则运算)+selenium
自动化测试·python·selenium·算术图片验证码·四则运算验证码·加减乘除图片验证码
MarsYjZ6 小时前
电脑网络重置,找不到原先自家的WIFI,手机还能正常连接并上网
智能手机·信息与通信
可爱小仙子7 小时前
ios苹果系统,js 滑动屏幕、锚定无效
前端·javascript·ios