目 录CONTENT

文章目录

mobileperf 的初步使用

shibuyu
2022-07-14 / 0 评论 / 0 点赞 / 290 阅读 / 1,140 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-07-14,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

简介

mobileperf is python PC 工具,可以收集Android性能数据: cpu 内存 流畅度fps logcat日志 流量 进程线程数 进程启动日志,mobileperf也支持原生monkey test
该项目是由天猫团队开源的PC Android性能稳定性测试工具,可以收集Android性能数据: cpu 内存 流畅度fps logcat日志 流量 进程线程数 进程启动日志,mobileperf也支持原生monkey test,
工具稳定性:mobileperf 能支持跑 72 个小时以上,adb 断开重连都能继续采集

mobileperf 整体架构图:

image-1657776686315

环境搭建

  • 项目地址
  • 安装python3.7 python下载链接,加入到环境变量中,执行python --version,确保是python3
C:\Users\admin>python --version
Python 3.7.4
  • 安装adb,确保adb devices能找到设备
C:\Users\admin>adb devices
List of devices attached
5d0c9ab6        device
  • 修改配置文件,示例参考根目录下config.conf
[Common]
#test process,example: package=com.alibaba.ailabs.genie.contacts
#测试流程,示例:package=com.alibaba.ailabs.genie.contacts
#support multi process,separate use; if contains child process,first must be main process
#支持多进程,分开使用;如果包含子进程,首先必须是主进程
#com.tencent.mm  com.sina.weibo com.taobao.taobao
package=com.example.myapplication #修改成自己手机上要测试的
#collect frequency, int type,unit: second
#采集频率,int类型,单位:秒
frequency=5 # 采集频率
#collect timeout ,int type ,unit:minute, for example:72 hours 4320
# 收集超时时间,int类型,单位:分钟,例如:72小时4320
timeout=3 # 采集时长
#dumpheap frequency, int type,unit: minute
#dumpheap频率,int类型,单位:分钟
dumpheap_freq=1
#adb serialnum,adb devices result example WSKFSKBQLFA695D6
serialnum=5d0c9ab6  # 修改成自己的,adb devices
#except log tag,tools will check in logcat,save exception log in exception.log,multi tags separate use ;
#日志标签除外,工具会在logcat中检入,异常日志保存在exception.log中,多标签分开使用;
exceptionlog=fatal exception;has died
#monkey test,true will enable,other disable
#monkey 测试,true 将启用,其他禁用
monkey=
#test results save path,forbidden space, default None,will save in mobileperf/results
#测试结果保存路径,禁止空格,默认无,会保存在mobileperf/results
#example  save_path=/Users/look/Desktop/project/mobileperf_output
save_path=
#device pull path,test end,tool pull path to PC,multi path separate use;
#设备拉路径,测试端,工具拉路径到PC,多路径分开使用;
phone_log_path=/data/anr  # 日志文件
#mailbox Reserved, no use
mailbox=390125133@qq.com
  • 运行,mac、linux 在mobileperf工具根目录下执行sh run.sh,windows 双击run.bat,结束测试,等待设置测试时长到或按Ctrl+C
    image-1657776600245

测试案例

测试报告

image-1657776943050

报告分析

cpu

采集时间间隔 ,配置文件中默认 5 秒,由于对采集频率要求不高,top 支持同时采集多进程,结果简单易处理,实时性 可信度高,采用 top 的方式

测试过程中会生成 cpuinfo.csv,可以测试过程中查看,表中各列解释
image-1657777654795

内存

整机内存 可用内存通过 dumpsys meminfo 获取 Total RAM 、Free RAM

各进程 pss 通过 dumpsys meminfo package 获取 TOTAL 行 Pss Total 所在列的值,各进程 PSS 也可以通过 dumpsys meminfo 获取,只是拿不到各进程更详细的内存占比情况,比如堆大小、native、system、so 大小等

经在 CC 上测试发现 dumpsys meminfo 比 dumpsy meminfo package 耗时长,dumpsys meminfo 耗时 6s 多,dumpsys meminfo package 能在一秒内完成,采集频率 5s,dumpsy meminfo 会导致 CC 上 system_server 系统进程 cpu 由 2%增高到 80%,所以降低了 dumpsys meminfo 采集频率,采用 10 倍设置频率采集(比如 dumpsys meminfo package 5s,dumpsy meminfo 则 50s)

由于要支持多进程的情况,现在各进程 pss 通过解析 dumpsys meminfo 结果得到,dumpsys meminfo package 来获取各个进程的详细内存情况

在测试过程中会生成一个 meminfo.csv 文件,可以查看,表中各列解释
image-1657778177739
这个 csv 表格是用 dumpsys meminfo 得出的,汇总 xlsx 文件会在测试结束后生成,对应 meminfo 这个表格

logcat 日志(支持异常日志检测)

工具会保留全量 logcat 日志,每隔 60 万行会新建文件,辅助定位问题
image-1657778775694

如果配置文件中配置了异常日志

exceptionlog=fatal exception;has died

会将 logcat 中出现的异常日志都保存在 exception.log 中

0

评论区