IOS手机耗电量测试

2023-12-15 17:04
文章标签 手机 测试 ios 耗电量

本文主要是介绍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浏览器中输入。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作

 

 视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。      

这篇关于IOS手机耗电量测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/497199

相关文章

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

Python自动化处理手机验证码

《Python自动化处理手机验证码》手机验证码是一种常见的身份验证手段,广泛应用于用户注册、登录、交易确认等场景,下面我们来看看如何使用Python自动化处理手机验证码吧... 目录一、获取手机验证码1.1 通过短信接收验证码1.2 使用第三方短信接收服务1.3 使用ADB读取手机短信1.4 通过API获取

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

你的华为手机升级了吗? 鸿蒙NEXT多连推5.0.123版本变化颇多

《你的华为手机升级了吗?鸿蒙NEXT多连推5.0.123版本变化颇多》现在的手机系统更新可不仅仅是修修补补那么简单了,华为手机的鸿蒙系统最近可是动作频频,给用户们带来了不少惊喜... 为了让用户的使用体验变得很好,华为手机不仅发布了一系列给力的新机,还在操作系统方面进行了疯狂的发力。尤其是近期,不仅鸿蒙O

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在