降负载-内存测试方法,工具及拆解工具
来源:飞书 wiki(obj_token: EXc5dZwlLoX9NHxJhiwciMFpnHb)
4 张图片为飞书 internal authcode 链接,无法下载,已用描述文本替代。
背景:
配合OS4降负载-内存降负载,所以进行与竞品对齐的内存标准5.0优化
当前标准:【外部】小米应用内存标准4.0(sheets,doc-id: Vlsws8rwVhZnRhtzFnpc6IR2nTe)
测试对比项:OS4降负载专项 - 内存方案(wiki,doc-id: KbBtwuao9i8q90kShCFcI743n5b)
开机内存
测试方法:
前置条件:
🏝️
- 测试机型要求:出厂默认状态
- 线刷 normal 版本或恢复出厂设置(默认使用稳定 user 版本。开发版需使用 pref user 版)
- USB 连接:为了保证手机运行状态,避免直接连接 USB 对内存的影响,USB 连接电脑后解锁手机,运行测试工具(MTS)
- 开机引导处:同意必须的条约、作为新手机使用、跳过密码设置、跳过小爱、默认导航方式 miui14:(“基础设置”页面点”继续”按钮)
- 不登陆帐户,不能带水印
- 不要使用/调起键盘,也不要使用带搜索的功能
- 首次开机后下拉通知栏,点击未成年模式通知的”不再提示按钮”,然后关机再开始测试开机内存
- 开机后,关闭 WiFi,设置中打开开发者选项,开启 USB 调试模式,打开保持亮屏,设置自动锁屏时间为无操作后 10 分钟,一键清理内存(最近任务的一键清理按钮)
测试步骤:
🎁
- 在内存标准测试工具目录下打开终端输入”python3 memory_dist.py”
- USB 连接电脑重启手机解锁,待机界面等待 8 分钟后开始测试手机剩余内存值(注:user 版本需按照脚本提示及时解锁亮屏进入桌面,否则测试数据会不准确)
- 循环测试五轮,取平均值
- 测试结果查看方法:查看 memory_distribution 文件中”可用内存”数据
测试工具:
mts(抓取剩余内存):【内部】内存标准测试工具(docx,doc-id: ClQhdAuKYoMgrTxAUGwcosWYncb)
老化内存
测试方法:
📍
- 测试机型要求:出厂默认状态
- 线刷 normal 版本或恢复出厂设置(默认使用稳定版本。开发版需使用 pref 版)
- 使用应用动态负载2.0模型模拟用户使用进行老化,老化脚本执行大概7小时(详细步骤见测试工具链接 - 进程老化模型使用说明文档(wiki,doc-id: IxyZwuh5GizqBak16ehcg3cCnVp)- 只支持 ubuntu 系统) 具体执行用例:手机用户现网场景集构建(wiki,doc-id: UwxzwXgWyiFub3kG5nqcWih8nbc)
场景内存
测试方法:
前置条件:
🏕️
- 测试机型要求:出厂默认状态
- 线刷 normal 版本或恢复出厂设置(默认使用稳定版本。开发版需使用 pref 版)
- 使用 userroot 版本测试
- 应用测试前,更新应用为最新版本并打开,点掉所有弹框
- 手机连接 WiFi,并设置 10 分钟/永不锁屏,登录小米账号(国际版本需要登录谷歌账号)
- 确定该应用是常驻高优应用或者普通高优应用(在”小米应用内存标准4.0”(sheets,doc-id: Uhbhs8vqbh0V9UtAgYNcK6FFnhg,sheet-id: tPTMio)表格中的”场景内存标准-应用” 优先级列查找)
- 找出该应用所有的高优进程
- 在”【内部】内存标准测试方法”(sheets,doc-id: PrqdssMt2hAj2utVrJjc1FjHnyd,sheet-id: gmZSVe)文档中搜索该应用名称,找到高优进程所在的全部行
- 每一行是一条独立 case,都需要测试,每一条测完都需要清除全部后台,再进行下一条 case 的测试(保证 case 测试开始前无任何后台)
- 查看测试 case 中有无需要下载安装 APK 的前提条件,若有则安装好之后打开,点掉所有弹窗之后,重启手机再进行测试,若无,则只需清除全部后台
测试步骤:
🎉
- 在内存标准测试工具目录下打开终端输入”python3 start.py gpumem”,按照提示打开待测 APP,按”Enter”,进入到输入应用名称阶段
- 输入应用名称,按”Enter”,检查脚本输出的进程名称以及数量与”内存标准测试方法”文档中当前测试 case 所在行的”进程”单元格中的进程名称、数量是否一致,若一致按”Enter”继续下一步,不一致则手动输入进行更正后按”Enter”进行下一步
- 输入待测试场景,按”Enter”自动抓取测试开始之前的前台值,抓取完毕之后,按”Enter”开始按照测试 case 进行操作,操作过程中会持续抓取前台值,操作完成之后需按”Enter”结束,脚本自动统计前台值
- 前台值统计完毕之后,手机会自动返回桌面,此时不要做其他操作,静置 3min,待终端输出”请打开待测 app,用于获取测试包名…”代表后台静置 3min 的内存值获取完毕
- 测试机打开最近任务界面,清理全部后台,按”Enter”进行下一条 case 或者输入”q”退出测试
- 查看脚本生成的
mts/out/appdump/2022-xx-xx/*xlsx文件中的所有高优进程的前台峰值和后台静置值并且与”小米应用内存标准4.0”(sheets,doc-id: Uhbhs8vqbh0V9UtAgYNcK6FFnhg)表格中”验收标准”一列对比
测试工具:
mts(抓取剩余内存):【内部】内存标准测试工具(docx,doc-id: ClQhdAuKYoMgrTxAUGwcosWYncb)
驻留模型-异常拉起测试
测试方法:
前置条件:
🏆
- 测试机型要求:出厂默认状态
- 线刷 normal 版本或恢复出厂设置(默认使用稳定版本。开发版需使用 pref 版)
- 使用应用动态负载2.0模型进行测试,测试脚本执行大概6小时(代码获取 性能全场景测试工具用户使用指南(docx,doc-id: ZnjddNYCQoWlduxnWNdckZ62n8b)【具体可以看下图红框选中的部分】- 只支持 ubuntu 系统)
- 代码拉取后,需要切换到
dev_wangbixue_dynamic_model_tdk分支 - 模型配置文件 性能自动化工具执行参数-应用驻留模型(wiki,doc-id: FwEBw9MYein1IHka7sdchyndnOf)打开该模型配置文件创建副本,打开分享→小米科技,根据实际情况修改配置文件中测试任务信息、测试机型信息
- 将上面创建的模型配置文件副本链接,粘贴至
config/run_test_config.yml文件中【下方有截图】 - 需按照 后台驻留专项工具(docx,doc-id: Xb85dhTCSoQArtxxfAOcDS9anhc)该文档预置手机环境
📷 图片描述:PyCharm 配置/代码截图(红框标注
config/run_test_config.yml路径)。原文为飞书内部 authcode 链接,无法下载。
📷 图片描述:PyCharm 中运行内存测试界面截图,左侧为项目文件夹结构,右侧代码编辑区域红框突出显示
config/run_test_config.yml文件路径。原文为飞书内部 authcode 链接,无法下载。
测试步骤:
🎼
-
启动测试
- 在 PyCharm 中点击右上角的运行按钮
- 或者在终端中执行:
python main.py
-
测试结束后,解析抓取的 logcat
参考 PDT工具使用说明文档—老化前后&异常拉起统计(wiki,doc-id: UdAmwtfqCi52ThkhxnBcWG8ynjP)
参考该文档的5.3章节,将抓取的 logcat 拆分,修改
main_backgroup_up_split.py文件的第14行 logcat 文件路径后,执行main_backgroup_up_split.py文件
5.内存峰值
测试方法:
前置条件:
🏆
- 测试机型要求:出厂默认状态
- 线刷 normal 版本或恢复出厂设置(默认使用稳定版本。开发版需使用 pref 版)
- 使用应用动态负载2.0模型进行测试,测试脚本执行大概6小时(代码获取 性能全场景测试工具用户使用指南(docx,doc-id: ZnjddNYCQoWlduxnWNdckZ62n8b)【具体可以看下图红框选中的部分】- 只支持 ubuntu 系统)
- 代码拉取后,需要切换到
dev_wangbixue_dynamic_model_tdk分支 - 模型配置文件 性能自动化工具执行参数模板-静态峰值内存场景(wiki,doc-id: Y31PwegTWifXATkrUYYciNbTnea)打开该模型配置文件创建副本,打开分享→小米科技,根据实际情况修改配置文件中测试任务信息、测试机型信息
- 将上面创建的模型配置文件副本链接,粘贴至
config/run_test_config.yml文件中【下方有截图】 - 需按照模型配置文件的 V 列说明预置手机环境
📷 图片描述:模型配置文件界面截图,左侧红框突出显示”测试机型信息”部分。原文为飞书内部 authcode 链接,无法下载。
📷 图片描述:PyCharm 中进行内存峰值测试的代码界面,红框突出显示
config/run_test_config.yml文件链接。原文为飞书内部 authcode 链接,无法下载。
测试步骤:
🎼
- 启动测试
- 在 PyCharm 中点击右上角的运行按钮
- 或者在终端中执行:
python main.py
测试工具:后台驻留专项工具(docx,doc-id: Xb85dhTCSoQArtxxfAOcDS9anhc)
6.应用驻留-动态模型2.1
测试方法:
📍
- 测试机型要求:出厂默认状态
- 线刷 normal 版本或恢复出厂设置(默认使用稳定版本。开发版需使用 pref 版)
- 使用应用动态负载2.0模型模拟用户使用,脚本执行大概7小时(详细步骤见测试工具链接 - 应用驻留模型使用说明文档(docx,doc-id: Yejdda3qmoFn3nxkueJc3RW5nIg)- 只支持 ubuntu 系统) 具体执行用例可根据用例名去该文档搜索:手机用户现网场景集构建(wiki,doc-id: UwxzwXgWyiFub3kG5nqcWih8nbc)
测试步骤:
🎼
- 启动测试
- 在 PyCharm 中点击右上角的运行按钮
- 或者在终端中执行:
python main.py
研发拆解工具:
降负载内存专项—老化留存场景内存:【1】内存工具-老化内存拆解指导(wiki,doc-id: G9OywGvUKi8KyOkjSIWci3SbnZe)
降负载内存专项—老化峰值场景内存:【2】内存工具-老化峰值内存拆解指导(wiki,doc-id: WRVIwtwOli2s4ukOn0ic2fdonBf)
降负载内存专项—开机/典型场景内存:内存工具-开机/典型场景工具使用指导(wiki,doc-id: QLOYwQ4yqil823krRcBcQnwInUe)