大家好,我是来自微信小程序云测团队的nahua。
本期课程主要介绍录制回放的使用,并对录制回放使用过程中的常见问题进行了总结。如果对云测服务不熟悉的同学,可以看一下上期的小程序云测服务简介教程。
云测服务针对小程序自动化测试能力有三种类型:
大家知道,前面讲的智能化Monkey测试,特点是零代码、接入即用,可通过简单配置页面,提高覆盖率,但是场景无法定制化,不支持输入等复杂操作,适用于快速冒烟测试
如果希望做自动化回归测试,那么必然会涉及到逻辑相关校验点,这时候可以尝试录制回放测试。录制回放相比于智能化Monkey,录制回放可更进一步制定测试场景,极大提升了测试覆盖率。
录制回放可以分为两个步骤:录制用例和云测回放。
一、录制用例
执行录制回放测试首先需要录制用例,这里以新版的开发版工具为例,接下来我们实践操作一下:
1、打开录制用例界面
首先打开微信开发者工具,接着打开小程序项目,然后开始在工具上录制用例。
找到 “工具”—“自动化测试” ,打开自动化测试窗口,录制之前先选择账号,可以选当前登录登录的账号,也可以选虚拟账号,然后点击开始录制即可
2、添加用例
在添加用例中,需要注意的是
- 选择是否清除缓存,即数据、文件、授权数据;
- 选择是否回放时截图,即失败时截图、每个步骤截图。
录制用例过程中注意:
- 查找的元素目标对象,是可以编辑的,可选择应用到哪里(应用到当前用例,应用到全局用例),编辑目标对象,可通过XPath、id、class等选择器定位;
- 可选择回放时忽略失败,回放操作失败时也会忽略,继续下一步操作;
- 可根据需求添加断言校验;
- 可选择截屏。
3、本地回放
录制好用例之后,建议本地回放用例,调式下用例,提高回放成功率。对于录制的处理授权弹框,在回放前记得先清除授权缓存,如果没有清除,会导致回放授权失败。
4、进阶使用--基础模块
对于一些操作多个case都有的部分,可以抽出来做基础模块来管理,可以避免重复的录制操作,录制基础模块,在 “用例右边感叹号“—”选择录制基础模块”—“添加用例”。
那如何添加基础模块呢?在录制的普通用例中,每一个步骤都可以添加基础模块,步骤右边加号
- 选择添加的位置(在上面添加、在下面添加);
- 选择基础模块并入或者普通case合入;
- 选择基础模块。
添加基础模块后,回放用例,看是否成功,根据错误信息排查。
二、云测回放
本地回放用例,是基于IDE回放,而用户是在手机上打开小程序的。所以在本地调试用例成功后,建议在云测上真机回放用例,这样更贴近用户真实使用场景。云测回放只需简单几步即可完成。
1、同步用例
进入云测之后,在"测试用例管理"—"录制回放用例" 中同步用例,需要注意:
●用例将从project.config.json中testRoot配置的目录同步录制回放用例Json文件,同步前请确保用例存在。
●同步新的用例后会与已存在的用例文件进行合并,合并逻辑为:
同名文件,会覆盖新上传的文件,会保留;
已存在的文件若未出现在本次上传用例包中,会保留。
●基础模块不会上传,会加入到引入基础模块的用例中。
2、新建测试计划
在"测试用例管理"—"测试计划" 中新建测试计划。
测试用例勾选之前同步的用例。注意勾选的顺序决定用例的顺序。大家可以通过调整勾选的顺序来调整用例执行的顺序。
3、新建测试任务
在"自动化任务管理"—"测试任务" 中新建测试任务。
最长测试时长,可则根据用例数量以及预估用例执行耗时长短来决定。如果用例数量比较多可以设置长一点。值得注意的是,任务提交后会先扣除最长测试时长,测试结束后会根据测试的实际耗时自动返还多扣除的时长。
4、查看报告
测试结束后,云测服务提供了详细的测试报告,主要包括测试报告总览 、 设备详情、用例详情。
a)测试报告总览
报告总览列出了本次测试的基本情况,如小程序版本、小程序类型、测试计划、任务耗时、跑测的设备数量,用例执行次数、测试结果(看是否执行成功)、问题分布环形图等。另外,还包括:
- 问题列表:展现本次执行用例发现的问题,点击展开详情会从右侧展开问题详细情况,方便用户快速查看问题
- 用例列表:以用例维度展现本次测试跑测的所有用例信息、用例数、执行耗时、是否执行成功,点击查看详情可查看该用例本次跑测的详细信息
- 设备列表:以设备维度展现本次测试跑测的所有设备信息、用例通过率、跑测发现的问题,点击查看详情可查看该设备本次跑测的详细信息
- 资源占用:展现每次设备测试的启动耗时,平均内存和CPU等性能数据信息
b)用例详情
点击用例列表中"查看详情"按钮,进入测试详情页面。它以用例为维度,展现本次测试跑测的用例信息,包括用例名称、该用例跑测的结果统计,跑测该条用例的所有设备信息,微信版本,基础库版本、小程序版本、测试账号等。还包括:
- 运行截图:每一步骤的一些详情数据,操作、路径、目标对象、文本、状态及截图;
- 运行日志:展示跑测用例过程中的日志信息;
- 小程序日志:展示跑测用例过程中的小程序日志信息;
- 资源占用:记录了跑测过程中的CPU和内存性能曲线,点击曲线点可以看到点前时间截图;
- 网络请求详情:展示跑测过程中的小程序网络请求信息,如有发现网络请求异常,可在这里查看详细情况;
- 错误日志:跑测用例失败的日志。
c)设备详情
点击设备列表或性能数据中"详情"按钮,进入测试详情页面。它以设备为维度,展示本次跑测详细信息,包括设备信息、该设备跑测的结果统计,跑测该设备的所有用例信息,微信版本,基础库版本、小程序版本、测试账号,另外有运行截图、运行日志、小程序日志、资源占用、网络请求详情、错误日志。
前面提到由于录制和回放的环境不同,云测服务回放用例可能会失败。当回放失败时,云测服务有详细的信息帮助用户排查,有页面路径、操作时截图、当前页面wxml信息、详细错误日志、错误排查指引,另外还有小程序日志、网络请求详情、小程序版本信息等等。
三、常见问题分析
我们总结了录制回放测试执行失败的一些常见问题和解决方案,有:
1、缓存问题
缓存数据导致账号在录制和回放时状态不一致,具体来说我们在录制时忘记清除缓存,此时本地账号录制时是有登录态的,所以本地回放成功,而在云测跑测时真机是重新安装登录微信的,是一个空白的环境,于是账号登录后先进入登录授权界面,导致页面跳转和预期不一致而失败。
解决方案:
- 录制前一定要记得清除缓存;
- 新建任务时开启Clean Cache清除缓存,需要说明的是也不是所有的小程序都要清除缓存,主要针对本地有账号数据缓存的小程序最好处理一下。
2、回放时多了微信授权弹窗
前面提到真机回放每次都会重装登录微信,是一个干净的测试环境,拉起小程序时可能会有授权弹窗。
解决方案:
- 提交任务时,开启自动授权(Auto Authorize),会在回放过程中自动帮用户点掉授权弹窗,提高回放成功率。
3、查找不到元素
即使云测的回放逻辑对查找元素做了很多优化,但还是有可能找不到,比如:
- 录制时和回放版本不一致;
- 小程序版本变更导致录制的ID变化等等。
解决方案:
- 下载页面wxml,在开发者工具中打开对比录制脚本时的小程序版本,确认下该元素是否存在以及页面结构是否有变化。页面结构变化会导致Xpath查找失败;
- 建议增加id或者class等可以唯一查找的元素的标识,这样可以增加case的稳定性。
此外,还有一些比较复杂的错误,如果还是排查不了,可以看一下排查指引,排查指引主要是总结了一些常见的问题以及解决方案。
四、总结
录制回放测试适用于一些较简单的用例,可做自动化回归测试。
优点:
- 支持输入,文本查找,断言等自动化测试基础操作;
- 无需编写代码生成测试用例,用例生成效率高。
缺点:
- 部分操作不支持,对复杂业务场景有局限性,例如地图操作;
- 录制和回放用例脚本的环境不同,有一定概率回放失败需要调试。
最后大家在使用云测服务时遇到任何问题或者想要吐槽的,可以查看文档:需要帮助 | 微信开放文档。