评论

Monkey 测试:零代码接入 还不快来试一试?

Monkey 服务支持接入即可用,适合页面较少、功能简单的小程序,实现零代码、低成本的快速冒烟测试

微信小程序云测服务 提供了丰富的自动化测试能力供用户选择,其中最简单、最方便的就是 Monkey 测试。用户接入后即可使用,非常适合页面较少、功能简单的小程序,实现零代码、低成本的快速冒烟测试。其中 Monkey 测试针对不一样的使用场景,提供 3 种模式:智能化 Monkey 测试、自定义 Monkey 测试、快速 Monkey 测试


智能化 Monkey 测试介绍

智能化 Monkey 测试流程是在测试中通过智能化点击的方式,自动建立探索路径,实现对小程序页面的智能遍历。在遍历过程中,会自动获取 性能数据,并检测 异常情况,例如是否出现 JsError、黑白屏等情况,最后生成完善的测试报告。


下图展示了某个项目的 Monkey 测试报告的样例,可以看出本次测试发现小程序体验版本中的一些 JsError 的报错情况,便于快速 debug。


为什么称作智能化 Monkey,它和普通 Monkey 有哪些不同呢?

普通 Monkey 测试通过随机点击的方式,尽可能点击到更多的元素,测试是否会出现 crash 等情况。

智能化 Monkey 测试目的是做页面维度的冒烟测试,发现页面是否存在 JsError、黑白屏等异常问题,所以小程序智能化 Monkey 的目标是希望尽可能覆盖更多页面,而不是将页面所有元素都点击一次。


一般来说 Monkey 流程是如下:

1、元素解析,识别页面有哪些可以点击的元素

2、选取一个元素点击

3、点击不下去时进行回溯


云测服务针对小程序的特点,对上面各个步骤都进行进行定制优化,并且增加历史经验累积和分布式策略,提高覆盖率。


1、元素解析

在元素解析方面,前期我们使用机器学习的方式,针对 1000 多个小程序进行打标签,通过 yolov3 训练一套模型来识别可点击的元素。近期我们进行改进,通过 JS 注入的方式获取小程序当前页面的 DOM 树,通过解析 DOM 树的方式识别元素。通过下图,可以看到 JS 注入方式,更加准确的识别小程序可点击元素,更加贴近人的感知


2、选取点击元素

选取点击元素方面,我们根据页面 DOM 树中元素渲染后的属性特征进行筛选和过滤。如优先选择绑定了点击或滑动事件的元素,过滤不在当前可视区域或不可见元素。


3、页面回溯

当点击进行不下去、需要页面回溯时,可以针对小程序特性,直接通过拼 path+query 直接回到某个状态的页面


在每次测试结束后,后台会记录每次测试中页面跳转成功的情况,画有向图,用作历史经验,为后续测试的元素选取作为参考。因此一般来说,跑测次数越多,覆盖率越高。除此以外,当用户提交多台机器同时跑测试时,例如提交 10 台安卓机器同时测试,后台会尽量让不同的机器去覆盖点击不同的页面,提升整体任务成功率。


智能化 Monkey 测试效果分析

从目前的统计结果看,20 分钟安卓和 iOS 的平均页面覆盖率都在 30% 左右。


后续云测服务将进一步优化算法,并结合现网页面访问情况,在有限的测试时间里面,尽量优先去点击 现网用户访问多的页面,更加符合业务的实际需求。


自定义 Monkey 测试

部分用户希望需要进一步提升 Monkey 页面覆盖率,这时候可以尝试自定义 Monkey 的方式。

在开始自定义 Monkey 测试前,用户需要前往【测试计划】页面配置指定页面列表,在测试时先直接通过配置的 path+query 方式打开指定页面列表。

打开完成后,云测服务提供多种后继模式,进行后续智能化测试:

  • 自由探索:所有指定页面打开后继续原来智能化探索,进一步提升覆盖率
  • 重点覆盖:所有指定页面直接打开后,重回重点页面继续点击,适合页面稳定性测试,测试页面稳定性
  • 结束测试:直接结束测试任务,快速获取测试结果


快速 Monkey 测试

第三方服务商用户需要开发多个小程序,这时快速 Monkey 测试非常适合他们做多个小程序的快速冒烟测试

快速 Monkey 测试支持一次提测最多 30 个小程序,每个小程序跑测 1 分钟智能化 Monkey,检查异常情况;也支持为每个小程序指定页面做冒烟测试。

注意:只有第三方服务商,才能使用快速 Monkey 模式


总结

以上三种 Monkey 模式适用于不同场景的快速冒烟测试,同时零代码接入云测服务即可快速应用,助力小程序开发者提升测试效率,实现测试自由。



但是智能化 Monkey 也存在不支持输入、上传图片等非点击类型操作、不校验页面逻辑登问题。对于此类情况,录制回放 能够满足这方面的需求,实现更好的测试环境。


如有更多小程序云测服务的相关问题,可点击 微信小程序云测服务专区 发帖反馈,技术专员将为大家解答及进行深度交流。


最后一次编辑于  2022-08-05  
点赞 5
收藏
评论

10 个评论

  • 神经蛙
    神经蛙
    2022-08-03

    我的眼睛学会了

    2022-08-03
    赞同 2
    回复
  • 一笑皆春
    一笑皆春
    2022-08-03

    学习了

    2022-08-03
    赞同 1
    回复
  • 社区运营专员-一旺
    社区运营专员-一旺
    发表于小程序端
    2023-08-07

    123

    2023-08-07
    赞同
    回复
  • 豆子
    豆子
    2022-08-11

    现在全力写minium定制化场景脚本,待结束后准备接入monkey作为日常发布bg之后的冒烟测试。

    2022-08-11
    赞同
    回复
  • 天使的眼泪
    天使的眼泪
    发表于移动端
    2022-08-10
    这个怎么学,0基础
    2022-08-10
    赞同
    回复
  • 茜茜又困了🐽
    茜茜又困了🐽
    2022-08-03

    已阅,真不戳,测试忙的时候自己懒得测试可以用这个玩儿嘛

    2022-08-03
    赞同
    回复
  • Frank
    Frank
    2022-08-03

    好,你讲我知道了

    2022-08-03
    赞同
    回复
  • dreamhunter
    dreamhunter
    2022-08-03

    期待最终效果

    2022-08-03
    赞同
    回复
  • 启年
    启年
    发表于移动端
    2022-08-03
    冒烟了
    2022-08-03
    赞同
    回复
  • Memory (私信不回复)
    Memory (私信不回复)
    发表于移动端
    2022-08-02
    会不会过段时间就学微软的大刀部?
    2022-08-02
    赞同
    回复
登录 后发表内容