- 优化小程序启动性能
启动性能分析 小程序启动是小程序用户体验中极为重要的一环,启动耗时过长会造成小程序用户流失,影响用户体验。 而在小程序启动流程中,代码包准备、小程序代码注入和首页渲染耗时是与小程序本身相关的,开发者可以进行一定的优化工作。 [图片] 启动性能分析专项测试,通过多次测试用户首次访问(需下载代码包)以及用户非首次访问(已下载代码包)两种情况,分析小程序在以上三个阶段的启动耗时情况,帮助用户针对性的提升启动性能。 为了让用户多多体验启动性能分析能力,每个项目可首次免费提测启动性能分析任务。 快速开始 进入云测服务后,在页面的右上方点击新建任务,测试类型选择启动性能分析,选择测试平台,点击立即创建即可创建新的任务。 任务启动后,会分别执行10次用户首次访问以及非首次访问的小程序启动情况,用户可以通过查看报告看到启动性能测试详细情况。 云测服务重要更新:现启动性能分析任务支持用户选择多台安卓或iOS手机一起跑测[图片] 查看报告 任务结束后,用户可以通过在测试任务页面直接点击查看报告按钮进入报告页面。 报告详细展示了用户首次访问(需下载代码包)以及用户非首次访问(已下载代码包)两种情况的测试结果,并通过时序图展示了平均耗时情况分布,让用户可以清晰看到耗时分布情况,找到性能瓶颈 此外,报告还给出了优化建议,帮助用户针对性地提升小程序启动性能。 [图片] 进阶使用--支持分析指定页面 启动性能分析一般是分析小程序首页的性能。现在云测也支持分析用户指定的页面,具体使用方法如下: 1. 在测试计划中,配置指定页面信息 用户可以在左侧导航栏中,可前往测试用例管理→测试计划,新增指定页面的测试计划。 [图片] 2. 提交任务时,选择指定测试计划 在提交测试任务时,选择在步骤1中配置的测试计划。 [图片] 3. 查看报告 测试报告中,支持用户查看配置页面信息。 此外,用户可以通过分次拉起小程序详情中的拉起后截图,查看页面截图。 [图片] 改进建议 一般来说,开发者可以利用下表中提到的几个方面,对启动性能进行优化。 [图片] 需要帮助 >
2023-06-09 - 自定义测试
[视频] 大家好,我是来自微信小程序云测团队的nahua。 本期课程主要介绍怎么使用Minium测试框架进行自定义测试。如果对云测服务不熟悉的同学,可以看一下上期的小程序云测服务简介教程。 云测服务专门为小程序提供自动化测试服务,自动化测试能力有三种类型: 智能化Monkey:接入即用,无需任何准备,智能建立探索路径录制回放:需要在开发者工具中通过”点点点“方式录制用例,无需编写代码自定义测试:需要使用Python编写Minium框架代码 一、Minium简介 大家知道,在测试中可能会遇到各种复杂业务场景,简单的自动化测试(如录制回放)不好解决。这时测试开发同学可以尝试使用Minium框架编写用例脚本,自主自定测试场景完成功能测试。 Minium是为微信小程序专门开发的自动化测试框架,官方文档地址小程序云测-MiniTest 。它可以在用户本地执行,也可以在云测服务中执行。 Minium框架优势包括: 支持并封装了所有的原生操作;屏蔽了iOS、安卓的底层差异,实现了一套脚本在三端运行;可以直接跳转到小程序某个页面并设置页面数据;支持获取页面数据;可进行函数的mock以及hook监听回调信息;可向 AppSerive 注入代码片段;支持数据驱动测试(ddt)。 二、本地执行 本地执行Minium脚本用例,有以下几步骤 1、运行环境 Python 3.8及以上;微信开发者工具最新版本,并打开安全模式: 设置 -> 安全设置 -> 服务端口;微信 >= 7.0.7 (确认微信公共库版本 >= 2.7.3即可)。 2、安装Minium框架 执行 pip3 install https://minitest.weixin.qq.com/minium/Python/dist/minium-latest.zip 3、环境检查 ●安装完之后检查minium版本信息 执行 minitest -v ●开启自动化能力检查 "path/to/cli" auto --project "path/to/project" --auto-port 9420 在Python Console 里执行Minium相关代码,检查是否成功执行,成功执行说明Minium安装及使用成功。 4、运行 接下来,新建一个简单用例项目,编写case以及配置文件,然后运行case,可通过执行 minitest -m test.first_test -c config.json -g 注意,minitest执行的时候会包含执行cli auto命令,所以不需要执行minitest前,再执行cli auto开启自动化检查命令,避免重复执行。执行完用例之后会关闭项目释放资源。 5、查看报告 运行 python3 -m http.server 12345 -d outputs 然后在浏览器上访问 http://localhost:12345,即可查看报告。报告中包含用例case数目、运行环境、执行耗时、开始时间以及运行截图、用例代码、运行日志等。 三、云测执行 小程序云测服务也可以直接执行Minium脚本,并且无需用户准备和维护真机环境,所以我们推荐用户在本地调试成功后,在云测服务执行脚本,而且只需简单3步即可完成跑测。 1、上传测试用例 进入云测之后,在 "测试用例管理"—"Minium用例" 中上传用例。注意,上传用例zip包,且云测解压后会与已存在的用例文件进行合并,合并逻辑为: 同名文件,会覆盖;新上传的文件,会保留;已存在的文件若未出现在本次上传用例包中,会保留。 2、新建测试计划 在"测试用例管理"—"测试计划" 中新建测试计划。注意这里和录制回放相同,勾选的顺序决定用例的顺序。大家可以通过调整勾选的顺序来调整用例执行的顺序。 3、提交测试任务 在"自动化任务管理"—"测试任务" 中新建测试任务 自定义测试时长,可根据用例数量以及预估用例执行耗时长短来决定,如果用例数量比较多可以设置长一点。 Minium配置,根据自己需求配置,可配置在assert的时候是否截图、在点击操作时是否截图、启动的时候是否relaunch到启动页面、是否启用小程序自动授权、在用例结束时, 是否记录当前页面的wxml信息、是否启用体验评分、小程序编译模式。 4、查看报告 跑测完成后,云测服务提供了详细的测试报告,主要包括 测试报告总览、用例详情和设备详情。 a)测试报告总览 报告总览列出了本次测试的基本情况,如小程序版本、小程序类型、测试计划、任务耗时、 跑测的设备数量,用例执行次数、测试结果(看是否执行成功)、问题分布环形图等。另外,还包括: 问题列表:展现本次执行用例发现的问题,点击展开详情会从右侧展开问题详细情况,方便用户快速查看问题;用例列表:以用例维度展现本次测试跑测的所有用例信息、用例数、执行耗时、是否执行成功,点击查看详情可查看该用例本次跑测的详细信息;设备列表:以设备维度展现本次测试跑测的所有设备信息、用例通过率、跑测发现的问题,点击查看详情可查看该设备本次跑测的详细信息;资源占用:展现每次设备测试的启动耗时,平均内存和CPU等性能数据信息。b)用例详情 点击用例列表中"查看详情"按钮,进入测试详情页面。它以用例为维度,展现本次测试跑测的用例信息,包括用例名称、该用例跑测的结果统计,跑测该条用例的所有设备信息,微信版本,基础库版本、小程序版本、测试账号等。还包括: 运行截图:跑测用例的截图,包含setup、teardown截图、assert断言截图、点击操作截图等;运行日志:展示跑测用例过程中的日志信息;小程序日志:展示跑测用例过程中的小程序日志信息;资源占用:记录了跑测过程中的CPU和内存性能曲线,点击曲线点可以看到点前时间截图;网络请求详情:展示跑测过程中的小程序网络请求信息,如有发现网络请求异常,可在这里查看详细情况;错误日志:跑测用例失败的日志;体验评分:需手动开启体验评分,检查跑测用例过程中的运行时性能。c)设备详情 点击设备列表或性能数据中"详情"按钮,进入测试详情页面。它以设备为维度,展示本次跑测详细信息,包括设备信息、该设备跑测的结果统计,跑测该设备的所有用例信息,微信版本,基础库版本、小程序版本、测试账号,另外有运行截图、运行日志、小程序日志、资源占用、网络请求详情、错误日志、体验评分 那么云测测试报告跟本地测试报告有什么区别呢? 本地报告相比与云测报告没有设备维度的信息,及资源占用信息,也没有体验评分数据,且网络请求日志在request.log文件中,不够直观。 四、执行方式对比 上面提到,Minium框架可以支持本地执行和云测服务执行。我们总结了两者之间的差异,分别从以下几方面做对比: [图片] 点击查看相关文档:使用自己的账号 | 虚拟账号跑测 | 第三方接口 | 快速打通Devops 流程 五、总结 自定义(Minium)测试相比于录制回放来说: 优点: 灵活度高能力全面,适应多种场景;支持数据驱动测试,支持参数化测试、不同数据测试;可以常用PageObject设计模式,降低Case维护成本,具体使用可参考微信小程序自动化测试框架 Minium——PO模式测试用例。缺点: ●需要自己编写Python脚本,有一定的学习成本 最后大家在使用云测服务时遇到任何问题或者想要吐槽的,可以查看文档:需要帮助 | 微信开放文档。
2023-07-11