背景
小程序发版进行人工冒烟回归成本较大,工作也比较机械化,故而希望用自动化测试来代替人工冒烟。
现有技术方案
miniprogram-automator 测试框架
它可以与市面上流行的任意 Node.js 测试框架结合使用,以此来达到测试小程序用例的目的。
- 优点:
可以实现比较复杂用例场景
- 缺点:
编写测试用例成本较高。
小程序开发者工具的录制/回放功能
开发者可以将测试操作提前录制好,然后通过执行录制脚本来实现测试过程的回放。
优点:测试用例通过录制步骤来实现,比较简单方便
- 缺点:
1、测试用例比较粗,比较适合做冒烟测试。
2、依赖本地的开发者工具。
- 优点:
上手和使用推广成本低
MiniTest 云测试
MiniTest 微信小程序云测是一套由微信测试团队自主研发,联合 WeTest 云真机能力,共同推出的小程序自动化测试服务。服务基于云真机,支持开发者简单快捷地实现小程序真机自动化测试和性能分析等能力。
支持功能如下:
- 零代码接入智能化 Monkey 测试
智能化 Monkey 基于微信团队自研的一套智能探索算法,程序会自动识别小程序中可操作的节点,建立探索路径,从而实现对小程序页面的智能遍历。这种模式非常适合页面较少,功能简单的小程序。我们也推荐大多数开发者选用这种模式,来实现零代码、低成本的快速冒烟测试或回归测试。
此外,云测支持自定义Monkey模式,支持用户使用指定的Page+Query参数,直接定位到小程序页面,提升页面覆盖率
在跑测同时,云测服务会自动检测黑白屏,JsError,Crash 异常情况。当发现这些异常情况时,测试结果将标记为失败,并在报告中提供相关信息帮助用户排查问题。
- 录制回放
录制回放可以比智能化 Monkey 更进一步地指定测试场景,极地大提升了测试覆盖率。
开发者可以通过开发者工具操作提前录制好,然后在云测服务上使用真机执行录制脚本来实现测试过程的回放。
- 自定义测试(Minium)
小程序测试框架 Minium 是微信团队为开发者提供的一套测试接口,可以简单快捷地实现对小程序的自定义测试。开发者可以使用这套框架来编写测试用例,执行自动化测试,以达到完全自主定制测试场景的目的。
云测服务支持直接在真机跑测 Minium 脚本。和用户本地跑测相比,云测服务无需用户部署和维护真机环境,在跑测过程自动获取性能数据,并生成详细的测试报告,方便开发者排查问题
优点:
丰富的自动化测试能力、远程真机跑用例的能力、方便集成到devops流程的能力。
缺点:
有时间限制,云测服务为小程序开发者提供只提供每周150分钟免费测试时长。超出需要花钱购买时长。
根据以上相关对比,结合项目本身需求,和后续的devops集成能力,故而选择 MiniTest 云测试-录制/回放功能
使用流程
使用流程参考官方文档 developers.weixin.qq.com/miniprogram…
使用过程
开发人员和测试人员之间是如何进行协作的?
因为需要用到微信小程序开发者工具,所以首先帮助测试同学安装了本地开发套装。目前应用的阶段比较初级,只是用到云测的录制回放能力。每次上线之前都会跑一遍用例,查看结果没问题,然后进行上线发布。
流程如下:
结果如下:
使用过程中遇到了哪些问题?
- 我本地录制了用例但是同步不到云测平台
首先在云测平台-账号管理,查看自己账号是否已经授权或者过期,都需要进行重新授权,这样才能将自己账号的测试case同步到云测平台
- 我的用例涉及到定位我如何处理?
可通过虚拟账号配置,mock地理位置
- 有时候我的本地case没问题,就是在云测跑不同
看看自己的免费时间是不是用完了,还有些场景本地能实现,但是云测不能跑通,比如支付场景。
使用心得
目前使用录制回放能力上手成本比较低,能一定程度上代替人工冒烟,后续需要进一步探索云测的能力,期望能实现更细致用例的应用。