概述
从最初分享安卓端监控方案过去四年了,期间监控方案也有很大变化,更新一版,最初的设计想法
- 性能测试之用例得分评价和 CPU 内存数据监控——谈谈个人看法和实践总结
- shell 管理 monkey 压力测试续——监控方案重构及 MCM 监控维护
- shell 脚本通过 dumpsys SurfaceFlinger --latency 数据计算 FPS 和评价流畅度。
设计思路:
- 设备端离线后台 shell 脚本监控
- 用 busybox 的 awk 做数据提取存为 csv
- 结果获取到 PC 端用 python 脚本生成 html 报告
依赖文件:
- 设备端需存在/data/local/tmp/busybox
(busybox可到官网对应cpu架构下载)
,命令:
adb push busybox /data/local/tmp
adb shell chmod 755 /data/local/tmp/busybox
脚本文件:
监控脚本 monitor.sh
adb shell
sh /data/local/tmp/monitor.sh "$monitor_folder" "$monitorWindow" "$monitorPackages" 5 $meminfo_type &
参数说明:
1、monitor_folder = 监控结果文件夹名(/data/local/tmp/$monitor_folder)
2、monitorWindow = fps 监控窗口,不抓取为空""
adb shell dumpsys SurfaceFlinger
Allocated buffers 信息中获取,安卓 8.0 之后有标号如 #0、SurfaceView 后有 “ - ” 传参注意需要""
3、monitorPackages = 额外抓取 heap、views、threads、FD 信息的进程,多个用 | 间隔,不抓取为空""
4、5 = 5 秒间隔
5、meminfo_type = 1,取所有进程 PSS,额外取指定进程详细信息,0 则只取配置进程内存信息
预期监控时长结束后,停止监控:
adb shell touch /data/local/tmp/stop
获取结果
adb pull /data/local/tmp/$monitor_folder
文章源自玩技e族-https://www.playezu.com/190703.html监控脚本 monitor.py
生成报告:(需安装python环境和pandas库)
python monitor.py 文件夹路径
说明:
1、脚本会先遍历路径下 meminfo.csv 所在路径,并使用其上一级目录作为 case 名
2、monitor_HTML 是报告的模板文件,数据采用的是生成 js 动态加载的形式,脚本会将其复制到传参目录下
3、依次处理 csv 数据存为data/case名_csv结果文件夹名
,list.js 为 case 选择列表数据,cpu 和 pss 存储了最大值和极值差的 csv
4、查看报告数据需要浏览器有本地读写权限:
chrome:start chrome.exe --allow-file-access-from-files
firefox:about:config 中 privacy.file_unique_origin属性false
5、报告数据刷新会在点击监控结果文件夹名称后刷新 文章源自玩技e族-https://www.playezu.com/190703.htmlgithub:monitor-for-android
文章源自玩技e族-https://www.playezu.com/190703.html
未知地区 1F
军哥出品,必属精品 已点赞打赏不错的工具,用起来也简单。
建议可以到社区的开源项目板块提交下?窗口名要怎么选呢,我这一直跑不出来 fps_window 的数据,以下图为例,我应该选取哪部分作为窗口名呢?
已解决,手机问题为什么我生成的 html 看不到年月日信息呀这个手机需要 root 吗