前文 微信小程序自动化测试——智能化 Monkey 提到 Monkey 虽然使用简单方便,但是不支持输入文本,页面逻辑校验等操作。如果用户希望做自动化回归测试,那么必然会涉及到逻辑相关校验点,这时候可以尝试 录制回放的方案。
下面我们具体看看如何操作
一、开发者工具录制用例
录制用例可以参考 官方文档 和 小程序云测服务 录制回放教程 。这里有几点需要特别注意:
- 使用虚拟账号录制用例。因为云测服务在真机回放时只能使用虚拟账号回放,所以只有虚拟账号录制的用例,才能在云测服务运行
- 录制前必须清空所有缓存。云测上真机回放会重新安装登录微信拉起小程序,而缓存在开发者工具本地的登陆状态等数据无法同步到跑测真机上,如果录制前未清除缓存可能导致录制和回放时数据不一致而失败。
- 建议下载最新 nightly 版本 开发者工具,可以第一时间体验录制的新增能力
二、在云测服务回放用例
具体操作可以参考 录制回放教程。一般操作步骤如下:
- 同步用例到云测服务。 请注意,此处只会同步虚拟账号录制的用例
- 创建测试计划。云测服务支持用户自定义调整用例执行顺序
- 提交真机测试任务。由于对于每个项目而言,虚拟账号是互斥资源,如果同时提交 2 个平台测试,需要排队等待账号。录制回放任务提测时,建议只选择一个平台(iOS 或 Android)去测试
- 查看报告。云测服务从问题列表,用例,设备,性能各个维度对测试报告进行分析
三、回放失败排查
录制回放测试因录制与回放平台不同、缓存数据无法同步、小程序版本差异等,录制回放初期需要用户调试脚本,存在一定回放失败率。这时云测提供了详细的错误信息,帮助开发者排查失败原因
- 页面路径
- 操作时截图
- 当前页面 wxml 信息
- 详细错误日志
- 错误排查指引
我们也总结了一些常见失败原因如下:
1、缓存问题
录制没有清缓存,导致回放时进入到登录页面,不能顺利进入测试页面。例如下图中,在回放时由于没有缓存,进入小程序后,先进入了登录授权界面,导致校验页面跳转和预期不一致而失败。
解决方案:录制前一定要记得清除所有缓存
2、后台请求不一致
录制和回放时,后台请求返回不一致失败。例如下图中,回放定位的位置拉取的数据只有一条,而录制的数据时点击的是第九条数据,后台返回内容不一致导致失败
解决方案:可以通过 mock 后台请求来,确保回放返回的数据和录制的数据保持一致,具体做法是,录制的时候打开 mock 开关
3、回放时多了弹窗
真机回放每次都会重装,登录微信,是一个干净的测试环境,拉起小程序时可能会有授权弹窗。例如下图中,在点击过程中多了蓝牙授权弹框,导致页面没有跳转而失败
解决方案:可以在提交任务时,打开 Auto Authorize 开关,会回放过程中自动点掉授权弹窗
4、查找不到元素
即使云测的回放逻辑对查找元素做了多层兜底,但还是可能找不到。比如录制时和回放版本不一致,小程序版本变更,导致录制的 ID 变化等等
解决方案: 先将错误的 wxml 文件下载下来,拖动到开发者工具,点击右键格式化来手动确认该元素是否存在,具体操作可参考 录制回放常见问题。确认不存在时,可以看看测试报告中小程序版本信息,是否和录制一致。对于小程序迭代比较快,页面结构变化就会导致 xpath 查找失败,可以检查录制的版本和回放的小程序版本是否一致,也可以建议开发增加 id 或者 class 等可以唯一查找到元素的标示,这样可以增加 case 的稳定性
四、最佳实践
云测服务有许多优秀团队体验,慧医天下测试团队就是其中之一。
慧医天下测试团队原来主要依赖手动测试,由于疫情原因,在线医疗需求激增,业务高速发展,测试人力不足,希望能快速从零开始搭建自动化测试方案,提升测试效率,保障产品质量
这里慧医天下团队利用录制回放能力,快速生成自动化测试用例。
目前核心业务逻辑已做到全自动化覆盖,录制用例100 多个,40%以上的用例已实现自动化回归。原来核心用例回归需要团队手动回归 4 小时,现在只需要2 小时即可完成,大部分用例通过自动化方式执行,回归测试效率提升一倍。
总结
录制回放的核心优点:
- 支持输入,文本查找,断言等自动化测试基础操作
- 无需编写代码 生成测试用例,只需要在开发者工具上通过点点点方式进行录制,然后再云测服务支持使用真机回放,学习成本低
- 用例生成效率高。根据腾讯医疗测试团队数据显示,原来使用 Minium 每条用例生产平均需要 15 分钟,采用录制回放后,平均用例生产时间不到 3 分钟即可调试完成,用例生成效率提升 5 倍以上
但是录制回放也有一定缺点,比如:
- 部分操作不支持,对复杂业务场景有局限性,如地图组件
- 录制和回放的环境不同,有一定概率回放失败,使用初期需要用户调试。如调试遇到问题,可以扫描文章末尾的企微群,联系我们反馈
那怎么解决地图组件等复杂用例问题,敬请参考《微信小程序自动化测试》后续系列文章
微信小程序自动化测试——自定义测试