电量测试

一:电量测试(功耗测试)

功耗测试分两类

1.硬件测试

  功耗仪---安捷伦电流测试仪(设置开机电压要与测试机电压相符,电压过大会烧坏手机,电压过小会开不了机)手机用假电池进行测试,手机设置最大亮度和音量,应用管理里面的通知管理关闭,避免干扰,以第一版本的平均电流值为基准

  1:手机安装测试 APK 前后待机功耗平均电流无明显差异

  2:多次执行业务场景获取电流值平均值在正常范围,得到的上下两版本平均电流增量小于2mA,最大电流的峰值不超过900mA

  3:持续使用一段时间,电流值在正常范围

    电流测试文档在博客园文件目录

   

2.软件测试---都不是能精准的,因为真机屏幕会耗电

   2.1第三方工具apk: 链接: https://pan.baidu.com/s/178xgY7GcJl_9c7pEgNZqZQ 提取码: ewte 

     步骤:安装apk后每个几秒点击执行主流程,找到测试包名对应的pid对应的电量值,绘成图表曲线,上下版本做横向对比,或者做竞品分析

 

  

   3.1:adb shell dumpsys battery获取level值(自动化每隔几秒抓取level值)-作为参考值   

 

 

 

 

import csv
import os
import time

'''
前提:
1:保持应用后台只存在被测应用
2:status 2 充电状态
先设置为非充电状态
adb shell dumpsys battery set status 1 (不会显示充电图标)

adb shell dumpsys battery获取level值
测试电量半小时到一个小时以上,level差值为消耗电量值
adb shell dumpsys battery set level 80 (设置电量值80)
adb shell dumpsys battery reset (电量恢复到实际值)
'''


# 控制类
class Controller(object):
def __init__(self, count):
# 定义测试的次数
self.counter = count
# 定义收集数据的数组
self.alldata = [("timestamp", "power")]

# 单次测试过程
def testprocess(self):
# 执行获取电量的命令
result = os.popen("adb shell dumpsys battery")
# 获取电量的level
for line in result:
if "level" in line:
power = line.split(":")[1]

# 获取当前时间
currenttime = self.getCurrentTime()
# 将获取到的数据存到数组中
self.alldata.append((currenttime, power))

# 多次测试过程控制
def run(self):
# 设置手机进入非充电状态
os.popen("adb shell dumpsys battery set status 1")
while self.counter > 0:
self.testprocess()
self.counter = self.counter - 1
# 每5秒钟采集一次数据
time.sleep(5)

# 获取当前的时间戳
def getCurrentTime(self):
currentTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
return currentTime

# 数据的存储
def SaveDataToCSV(self):
csvfile = open('power.csv', 'w')
writer = csv.writer(csvfile)
writer.writerows(self.alldata)
csvfile.close()


if __name__ == "__main__":
# 采集5次,每次间隔5秒
controller = Controller(5)
controller.run()
controller.SaveDataToCSV()

 

posted @   观呼吸  阅读(693)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示