大家好,我是来自微信小程序云测团队的nahua。
本期课程主要介绍智能化Monkey测试的扩展能力 ,主要包括扩展能力介绍以及在云测服务怎么使用扩展能力。
一、扩展能力
智能化Monkey提供了智能化的算法,帮助用户自动遍历,部分用户在此基础上可能会有进阶需求,例如:
- 小程序需要进行一些指定操作才能继续遍历。如需要登录,输入用户名、密码后才能正常访问小程序;
- Monkey是随机点击的,新版本中的新的页面功能,在测试中不一定会遍历到,希望可以配置页面,保证新功能能被覆盖到;
- 现有的Monkey模式是尽可能遍历更多页面,默认会优先点击前往新的页面。但是部分开发者希望可以做重点页面稳定性测试,尽可能在指定的几个重点页面中反复点击。
为了解决上述问题,云测服务对智能化Monkey进行了扩展,主要包括:
- 支持前置操作:支持用户配置Monkey前置操作,在跑测Monkey前会先执行指定操作。目前支持Minium、录制回放两种方式指定前置步骤(录制回放和Minium使用可以参考前面的视频课程);
- 支持配置指定页面:用户可以配置多个Path+Query,在前置步骤操作结束后会直接拉起指定页面,检查是否出现黑白屏,JSError等异常情况;
- 提供不同策略模式:支持自由探索和重点覆盖两种模式,自由探索是继续原来智能化探索逻辑,优先寻找未遍历过的页面;重点覆盖是重回指定的页面,尽量多点击页面的元素。
扩展后,Monkey的执行流程如下:
- 任务是否有前置操作,如有前置操作,先执行前置操作;
- 任务是否配置了指定页面列表,如有指定,在前置操作(如有)执行完成后,会先依次用 path+query 拉起页面列表;
- 根据配置的后继模式,开始智能化探索;
- 智能化探索完成,任务结束,收集并上报结果,生成测试报告。
二、智能化Monkey扩展使用
如何在云测上跑测智能化monkey扩展测试呢?
1.新建测试计划
在"测试用例管理"—"测试计划" 中新建测试计划。
前置步骤类型可选Minium、录制回放两种方式。另外配置前置操作是否中断跑测,以及勾选需跑测的用例。然后配置指定页面,选择Monkey模式(自由探索、重点覆盖)。
2.提交测试任务
在"自动化任务管理"—"测试任务" 中新建测试任务。
测试类型选择Monkey,并且选择对应的自定义Monkey测试计划,特别注意前置步骤测试耗时也会记录在测试时长中,比如最长测试时长20分钟,前置步骤执行了10分钟,任务继续执行剩余的10分钟智能化Monkey测试。
3.查看报告
测试结束后,云测服务提供了详细的测试报告,主要包括测试报告总览和设备详情。
a.测试报告总览
报告总览列出了本次测试的基本情况,如小程序类型,问题分布环形图,测试的覆盖率(计算方式是本次测试覆盖页面数除以现网页面总数,主要用来标识本次测试覆盖页面的情况),还包括:
- 问题列表:展现本次测试发现的所有问题,主要包括JSError、黑白屏、网络请求异常,性能问题 和 最佳实践建议,点击展开详情会从右侧展开问题详细情况,方便用户快速查看问题
- 设备列表:以设备维度展现本次测试跑测的所有设备信息、测试结果(包括前置操作结果)、体验评分总分、设备发现的问题,点击查看详情可查看该设备本次跑测的详细信息
- 覆盖页面:以页面维度展现本次Monkey测试覆盖的所有页面,以及每个页面发现的问题
- 资源占用:展现每次设备测试的启动耗时,平均内存和CPU等性能数据信息
b.设备详情
点击设备列表或性能数据中"详情"按钮,进入测试详情页面。它以设备为维度,展示本次跑测详细信息,包括:
- 运行截图:可以用来观察小程序执行情况。
- 异常检测:如发现有JSError、黑白屏等异常情况,会有Tab显示详细情况。对于JSError,可支持用户上传SourceMap文件反解。
- 网络请求详情:展示跑测过程中的小程序网络请求信息,如有发现网络请求异常,可在这里查看详细情况。
- 体验评分:通过体验评分展示了真机测试中运行时性能分析,帮助开发者发现并解决性能问题,详情可参考运行时性能检测--体验评分。
- 覆盖页面:展示本设备跑Monkey时覆盖了页面情况,以及发现的问题。覆盖的页面详细信息包含页面截图、网络请求、与当前页面相关的体验评分数据。
- 资源占用:记录了跑测过程中的CPU和内存性能曲线,点击曲线点可以看到点前时间截图。
- 前置操作:测试计划如果配置了前置操作,则会展现前置操作的详情,包括跑测用例的详情信息(测试结果、运行截图、运行日志)。如果前置操作的用例跑测失败,可以下载运行日志排查问题。
三、总结
本文主要介绍智能化Monkey的扩展能力,最后我们总结下前面的问题场景和解决方案:
- 小程序需要登录才能访问 :先使用录制回放或者Minium测试,调试好登录用例,然后将其配置成Monkey前置步骤,再跑Monkey测试。
- 小程序新功能页面在Monkey测试中没有被覆盖到 : 可以将新页面的path+query配置在测试计划,然后再跑测Monkey。不过要注意,如果新页面无法通过path+query直接拿起,需要依赖其他页面状态信息(如token),这种方式拉起页面可能会存在问题。
- 尽可能多的覆盖重点页面: 先配置重点页面的path+query,然后将monkey模式调整为重点覆盖即可。
最后大家在使用云测服务时遇到任何问题或者想要吐槽的,可以查看文档:需要帮助 | 微信开放文档。