降负载-内存测试方法,工具及拆解工具

来源飞书 wiki(obj_token: EXc5dZwlLoX9NHxJhiwciMFpnHb)

4 张图片为飞书 internal authcode 链接,无法下载,已用描述文本替代。

背景:

配合OS4降负载-内存降负载,所以进行与竞品对齐的内存标准5.0优化

当前标准:【外部】小米应用内存标准4.0(sheets,doc-id: Vlsws8rwVhZnRhtzFnpc6IR2nTe)

测试对比项:OS4降负载专项 - 内存方案(wiki,doc-id: KbBtwuao9i8q90kShCFcI743n5b)

开机内存

测试方法:

前置条件:

🏝️

  1. 测试机型要求:出厂默认状态
  2. 线刷 normal 版本或恢复出厂设置(默认使用稳定 user 版本。开发版需使用 pref user 版)
  3. USB 连接:为了保证手机运行状态,避免直接连接 USB 对内存的影响,USB 连接电脑后解锁手机,运行测试工具(MTS)
    • 开机引导处:同意必须的条约、作为新手机使用、跳过密码设置、跳过小爱、默认导航方式 miui14:(“基础设置”页面点”继续”按钮)
    • 不登陆帐户,不能带水印
    • 不要使用/调起键盘,也不要使用带搜索的功能
    • 首次开机后下拉通知栏,点击未成年模式通知的”不再提示按钮”,然后关机再开始测试开机内存
  4. 开机后,关闭 WiFi,设置中打开开发者选项,开启 USB 调试模式,打开保持亮屏,设置自动锁屏时间为无操作后 10 分钟,一键清理内存(最近任务的一键清理按钮)

测试步骤:

🎁

  1. 在内存标准测试工具目录下打开终端输入”python3 memory_dist.py
  2. USB 连接电脑重启手机解锁,待机界面等待 8 分钟后开始测试手机剩余内存值(注:user 版本需按照脚本提示及时解锁亮屏进入桌面,否则测试数据会不准确
  3. 循环测试五轮,取平均值
  4. 测试结果查看方法:查看 memory_distribution 文件中”可用内存”数据

测试工具:

mts(抓取剩余内存):【内部】内存标准测试工具(docx,doc-id: ClQhdAuKYoMgrTxAUGwcosWYncb)

老化内存

测试方法:

📍

  1. 测试机型要求:出厂默认状态
  2. 线刷 normal 版本或恢复出厂设置(默认使用稳定版本。开发版需使用 pref 版)
  3. 使用应用动态负载2.0模型模拟用户使用进行老化,老化脚本执行大概7小时(详细步骤见测试工具链接 - 进程老化模型使用说明文档(wiki,doc-id: IxyZwuh5GizqBak16ehcg3cCnVp)- 只支持 ubuntu 系统) 具体执行用例:手机用户现网场景集构建(wiki,doc-id: UwxzwXgWyiFub3kG5nqcWih8nbc)

场景内存

测试方法:

前置条件:

🏕️

  1. 测试机型要求:出厂默认状态
  2. 线刷 normal 版本或恢复出厂设置(默认使用稳定版本。开发版需使用 pref 版)
  3. 使用 userroot 版本测试
  4. 应用测试前,更新应用为最新版本并打开,点掉所有弹框
  5. 手机连接 WiFi,并设置 10 分钟/永不锁屏,登录小米账号(国际版本需要登录谷歌账号)
  6. 确定该应用是常驻高优应用或者普通高优应用(在”小米应用内存标准4.0”(sheets,doc-id: Uhbhs8vqbh0V9UtAgYNcK6FFnhg,sheet-id: tPTMio)表格中的”场景内存标准-应用” 优先级列查找)
  7. 找出该应用所有的高优进程
  8. 在”【内部】内存标准测试方法”(sheets,doc-id: PrqdssMt2hAj2utVrJjc1FjHnyd,sheet-id: gmZSVe)文档中搜索该应用名称,找到高优进程所在的全部行
  9. 每一行是一条独立 case,都需要测试,每一条测完都需要清除全部后台,再进行下一条 case 的测试(保证 case 测试开始前无任何后台)
  10. 查看测试 case 中有无需要下载安装 APK 的前提条件,若有则安装好之后打开,点掉所有弹窗之后,重启手机再进行测试,若无,则只需清除全部后台

测试步骤:

🎉

  1. 在内存标准测试工具目录下打开终端输入”python3 start.py gpumem”,按照提示打开待测 APP,按”Enter”,进入到输入应用名称阶段
  2. 输入应用名称,按”Enter”,检查脚本输出的进程名称以及数量与”内存标准测试方法”文档中当前测试 case 所在行的”进程”单元格中的进程名称、数量是否一致,若一致按”Enter”继续下一步,不一致则手动输入进行更正后按”Enter”进行下一步
  3. 输入待测试场景,按”Enter”自动抓取测试开始之前的前台值,抓取完毕之后,按”Enter”开始按照测试 case 进行操作,操作过程中会持续抓取前台值,操作完成之后需按”Enter”结束,脚本自动统计前台值
  4. 前台值统计完毕之后,手机会自动返回桌面,此时不要做其他操作,静置 3min,待终端输出”请打开待测 app,用于获取测试包名…”代表后台静置 3min 的内存值获取完毕
  5. 测试机打开最近任务界面,清理全部后台,按”Enter”进行下一条 case 或者输入”q”退出测试
  6. 查看脚本生成的 mts/out/appdump/2022-xx-xx/*xlsx 文件中的所有高优进程的前台峰值和后台静置值并且与”小米应用内存标准4.0”(sheets,doc-id: Uhbhs8vqbh0V9UtAgYNcK6FFnhg)表格中”验收标准”一列对比

测试工具:

mts(抓取剩余内存):【内部】内存标准测试工具(docx,doc-id: ClQhdAuKYoMgrTxAUGwcosWYncb)

驻留模型-异常拉起测试

测试方法:

前置条件:

🏆

  1. 测试机型要求:出厂默认状态
  2. 线刷 normal 版本或恢复出厂设置(默认使用稳定版本。开发版需使用 pref 版)
  3. 使用应用动态负载2.0模型进行测试,测试脚本执行大概6小时(代码获取 性能全场景测试工具用户使用指南(docx,doc-id: ZnjddNYCQoWlduxnWNdckZ62n8b)【具体可以看下图红框选中的部分】- 只支持 ubuntu 系统)
  4. 代码拉取后,需要切换到 dev_wangbixue_dynamic_model_tdk 分支
  5. 模型配置文件 性能自动化工具执行参数-应用驻留模型(wiki,doc-id: FwEBw9MYein1IHka7sdchyndnOf)打开该模型配置文件创建副本,打开分享小米科技,根据实际情况修改配置文件中测试任务信息、测试机型信息
  6. 将上面创建的模型配置文件副本链接,粘贴至 config/run_test_config.yml 文件中【下方有截图】
  7. 需按照 后台驻留专项工具(docx,doc-id: Xb85dhTCSoQArtxxfAOcDS9anhc)该文档预置手机环境

📷 图片描述:PyCharm 配置/代码截图(红框标注 config/run_test_config.yml 路径)。原文为飞书内部 authcode 链接,无法下载。

📷 图片描述:PyCharm 中运行内存测试界面截图,左侧为项目文件夹结构,右侧代码编辑区域红框突出显示 config/run_test_config.yml 文件路径。原文为飞书内部 authcode 链接,无法下载。

测试步骤:

🎼

  1. 启动测试

    • 在 PyCharm 中点击右上角的运行按钮
    • 或者在终端中执行:python main.py
  2. 测试结束后,解析抓取的 logcat

    参考 PDT工具使用说明文档—老化前后&异常拉起统计(wiki,doc-id: UdAmwtfqCi52ThkhxnBcWG8ynjP)

    参考该文档的5.3章节,将抓取的 logcat 拆分,修改 main_backgroup_up_split.py 文件的第14行 logcat 文件路径后,执行 main_backgroup_up_split.py 文件

5.内存峰值

测试方法:

前置条件:

🏆

  1. 测试机型要求:出厂默认状态
  2. 线刷 normal 版本或恢复出厂设置(默认使用稳定版本。开发版需使用 pref 版)
  3. 使用应用动态负载2.0模型进行测试,测试脚本执行大概6小时(代码获取 性能全场景测试工具用户使用指南(docx,doc-id: ZnjddNYCQoWlduxnWNdckZ62n8b)【具体可以看下图红框选中的部分】- 只支持 ubuntu 系统)
  4. 代码拉取后,需要切换到 dev_wangbixue_dynamic_model_tdk 分支
  5. 模型配置文件 性能自动化工具执行参数模板-静态峰值内存场景(wiki,doc-id: Y31PwegTWifXATkrUYYciNbTnea)打开该模型配置文件创建副本,打开分享小米科技,根据实际情况修改配置文件中测试任务信息、测试机型信息
  6. 将上面创建的模型配置文件副本链接,粘贴至 config/run_test_config.yml 文件中【下方有截图】
  7. 需按照模型配置文件的 V 列说明预置手机环境

📷 图片描述:模型配置文件界面截图,左侧红框突出显示”测试机型信息”部分。原文为飞书内部 authcode 链接,无法下载。

📷 图片描述:PyCharm 中进行内存峰值测试的代码界面,红框突出显示 config/run_test_config.yml 文件链接。原文为飞书内部 authcode 链接,无法下载。

测试步骤:

🎼

  1. 启动测试
    • 在 PyCharm 中点击右上角的运行按钮
    • 或者在终端中执行:python main.py

测试工具:后台驻留专项工具(docx,doc-id: Xb85dhTCSoQArtxxfAOcDS9anhc)

6.应用驻留-动态模型2.1

测试方法:

📍

  1. 测试机型要求:出厂默认状态
  2. 线刷 normal 版本或恢复出厂设置(默认使用稳定版本。开发版需使用 pref 版)
  3. 使用应用动态负载2.0模型模拟用户使用,脚本执行大概7小时(详细步骤见测试工具链接 - 应用驻留模型使用说明文档(docx,doc-id: Yejdda3qmoFn3nxkueJc3RW5nIg)- 只支持 ubuntu 系统) 具体执行用例可根据用例名去该文档搜索:手机用户现网场景集构建(wiki,doc-id: UwxzwXgWyiFub3kG5nqcWih8nbc)

测试步骤:

🎼

  1. 启动测试
    • 在 PyCharm 中点击右上角的运行按钮
    • 或者在终端中执行:python main.py

研发拆解工具:

降负载内存专项—老化留存场景内存:【1】内存工具-老化内存拆解指导(wiki,doc-id: G9OywGvUKi8KyOkjSIWci3SbnZe)

降负载内存专项—老化峰值场景内存:【2】内存工具-老化峰值内存拆解指导(wiki,doc-id: WRVIwtwOli2s4ukOn0ic2fdonBf)

降负载内存专项—开机/典型场景内存:内存工具-开机/典型场景工具使用指导(wiki,doc-id: QLOYwQ4yqil823krRcBcQnwInUe)