小程序云测 微信小程序自动化测试——录制回放

微信小程序云测服务 · 2022年07月22日 · 6970 次阅读

前文 微信小程序自动化测试——智能化 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 倍以上

但是录制回放也有一定缺点,比如:

  • 部分操作不支持,对复杂业务场景有局限性,如地图组件
  • 录制和回放的环境不同,有一定概率回放失败,使用初期需要用户调试。如调试遇到问题,可以扫描文章末尾的企微群,联系我们反馈

那怎么解决地图组件等复杂用例问题,敬请参考《微信小程序自动化测试》后续系列文章
微信小程序自动化测试——自定义测试

需要帮助

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册