小程序云测提供了丰富的自动化测试能力供用户选择,其中最简单,最方便的就是智能化 Monkey服务。用户接入云测后即可使用,非常适合页面较少,功能简单的小程序,可以实现零代码、低成本的快速冒烟测试。
智能化 Monkey
智能化 Monkey 整体测试流程是在测试中通过智能化点击的方式,自动建立探索路径,实现对小程序页面的智能遍历。在遍历过程中,会自动获取性能数据,并检测异常情况,如是否出现 JsError,黑白屏等情况,最后生成完善的测试报告。文章源自玩技e族-https://www.playezu.com/181979.html
目前对于智能化 Monkey 测试来说,是否出现异常情况是判断测试是否通过的标准,后续会优化 Monkey 服务的测试维度,将真机体验评分数据整合在一起,敬请期待~文章源自玩技e族-https://www.playezu.com/181979.html
下图展示了某个项目的 Monkey 测试报告的样例,可以看出本次测试中发现了小程序体验版本中的一些 JsError 的报错情况,这时测试同学可以通知开发及时修复
智能点击策略
这里我们为什么叫智能化 Monkey,它和普通 Monkey 有哪些不同呢?文章源自玩技e族-https://www.playezu.com/181979.html
通常的 Monkey 测试是通过随机点击的方式,尽可能点击到更多的元素,测试是否会出现 crash 等情况。文章源自玩技e族-https://www.playezu.com/181979.html
通过智能化 Monkey 的介绍可以发现,小程序 Monkey 测试目的是做页面维度的冒烟测试,发现页面是否存在 JsError,黑白屏等异常问题,所以小程序智能化 Monkey 的目标是希望尽可能覆盖更多页面,而不是将页面所有元素都点击一次文章源自玩技e族-https://www.playezu.com/181979.html
一般来说 Monkey 流程是:文章源自玩技e族-https://www.playezu.com/181979.html
- 元素解析,识别页面有哪些可以点击的元素,
- 选取一个元素点击
- 点击不下去时进行回溯 云测服务针对小程序的特点,对上面各个步骤都进行进行了定制优化,并且还增加了历史经验累积和分布式策略,来提高覆盖率
元素解析
在元素解析方面,我们开始使用了使用机器学习的方式,针对 1000 多个小程序进行打标,通过 yolov3 训练了一套模型来识别可点击的元素。近期我们进行了改进,通过 JS 注入的方式获取小程序当前页面的 DOM 树,通过解析 DOM 树的方式识别元素。从图中可以看到 JS 注入方式,可以更加准确的识别小程序可点击元素,更加贴近人的感知
选取点击元素
选取点击元素方面,我们根据页面 DOM 树中元素渲染后的属性特征进行筛选和过滤。如优先选择绑定了点击或滑动事件的元素,过滤不在当前可视区域或不可见元素。文章源自玩技e族-https://www.playezu.com/181979.html
页面回溯
当点击进行不下去需要页面回溯时,可以针对小程序特性,直接通过拼 path+query 直接回到某个状态的页面文章源自玩技e族-https://www.playezu.com/181979.html
历史经验累积
在每次测试结束后,后台会记录每次测试中页面跳转成功的情况,画成有向图,用作历史经验,为后续测试的元素选取作为参考。所以一般来说,跑测次数越多,覆盖率越高。
分布式策略
用户提交多台机器同时跑测时,如提交 10 台安卓机器同时测试时,后台会尽量让不同的机器去覆盖点击不同的页面,这样提升整体任务成功率
目前效果
从目前的统计结果看,目前 20 分钟安卓和 ios 的平均页面覆盖率都在30%左右。
后续云测服务将进一步优化算法,并结合现网页面访问情况,比如小程序有 100 个页面,可能现网访问多的只有 10-20 个页面,那么在有限的测试时间里面,尽量优先去点击现网用户访问多的页面,更加符合业务的实际需求
自定义 Monkey
部分用户希望需要进一步提升 Monkey 页面覆盖率,这时候可以尝试自定义 Monkey 的方式
在开始自定义 Monkey 测试前,用户需要前往测试计划页面配置指定页面列表,在测试时先直接通过配置的 path+query 方式打开指定页面列表。
打开完成后,云测服务提供多种后继模式,进行后续智能化测试:
- 自由探索:所有指定页面打开后继续原来智能化探索,进一步提升覆盖率
- 重点覆盖:所有指定页面直接打开后,重回重点页面继续点击。这个模式非常适合部分项目希望做页面稳定性测试,希望在几个重点页面反复点击,测试页面稳定性
- 结束测试:直接结束测试任务,快速获取测试结果
快速 Monkey
除了普通小程序开发者,还有一些是小程序第三方服务商,帮助授权他们的商户代开发小程序,比如有赞,微盟,明源云等。
对于第三方服务商用户,有非常多个小程序授权给他们开发,这时快速 Monkey 就很适合他们做多个小程序的快速冒烟测试
它支持一次提测最多30 个小程序,每个小程序跑测1 分钟智能化 Monkey,检查异常情况,也支持向自定义 Monkey 一样,为每个小程序指定页面做冒烟测试
请注意,只有第三方服务商,才能使用快速 Monkey 模式!
总结
以上介绍了三种 Monkey 模式,可以帮助用户进行快速冒烟测试,并且都是零代码,接入云测服务即可使用。
但是智能化 Monkey 也有一定缺点,比如:
- 不支持输入,上传图片等非点击类型操作
- 不校验页面逻辑校验,比如断言某个元素是否存在等
那怎么解决这些问题,敬请参考【丰富的自动化测试能力】后续系列文章
【丰富的自动化测试能力】录制回放
【丰富的自动化测试能力】自定义测试(Minium)
需要帮助
如果在使用微信小程序过程中遇到任何问题,欢迎在 小程序云测 专区发帖反馈
也可以微信扫描二维码加入云测官方企业微信群,联系 MiniTest 小助手反馈
评论