收藏
评论

自定义测试官方


大家好,我是来自微信小程序云测团队的nahua。

本期课程主要介绍怎么使用Minium测试框架进行自定义测试。如果对云测服务不熟悉的同学,可以看一下上期的小程序云测服务简介教程。

云测服务专门为小程序提供自动化测试服务,自动化测试能力有三种类型:

  • 智能化Monkey:接入即用,无需任何准备,智能建立探索路径
  • 录制回放:需要在开发者工具中通过”点点点“方式录制用例,无需编写代码
  • 自定义测试:需要使用Python编写Minium框架代码


一、Minium简介

大家知道,在测试中可能会遇到各种复杂业务场景,简单的自动化测试(如录制回放)不好解决。这时测试开发同学可以尝试使用Minium框架编写用例脚本,自主自定测试场景完成功能测试。

Minium是为微信小程序专门开发的自动化测试框架,官方文档地址小程序云测-MiniTest 。它可以在用户本地执行,也可以在云测服务中执行。

Minium框架优势包括:

  • 支持并封装了所有的原生操作;
  • 屏蔽了iOS、安卓的底层差异,实现了一套脚本在三端运行;
  • 可以直接跳转到小程序某个页面并设置页面数据;
  • 支持获取页面数据;
  • 可进行函数的mock以及hook监听回调信息;
  • 可向 AppSerive 注入代码片段;
  • 支持数据驱动测试(ddt)。


二、本地执行

本地执行Minium脚本用例,有以下几步骤

1、运行环境

  • Python 3.8及以上;
  • 微信开发者工具最新版本,并打开安全模式: 设置 -> 安全设置 -> 服务端口;
  • 微信 >= 7.0.7 (确认微信公共库版本 >= 2.7.3即可)。


2、安装Minium框架

执行

pip3 install https://minitest.weixin.qq.com/minium/Python/dist/minium-latest.zip


3、环境检查

●安装完之后检查minium版本信息

执行

minitest -v


●开启自动化能力检查

"path/to/cli" auto --project "path/to/project" --auto-port 9420

在Python Console 里执行Minium相关代码,检查是否成功执行,成功执行说明Minium安装及使用成功。


4、运行

接下来,新建一个简单用例项目,编写case以及配置文件,然后运行case,可通过执行

minitest -m test.first_test -c config.json -g

注意,minitest执行的时候会包含执行cli auto命令,所以不需要执行minitest前,再执行cli auto开启自动化检查命令,避免重复执行。执行完用例之后会关闭项目释放资源


5、查看报告

运行

python3 -m http.server 12345 -d outputs

然后在浏览器上访问 http://localhost:12345,即可查看报告。报告中包含用例case数目、运行环境、执行耗时、开始时间以及运行截图、用例代码、运行日志等。


三、云测执行

小程序云测服务也可以直接执行Minium脚本,并且无需用户准备和维护真机环境,所以我们推荐用户在本地调试成功后,在云测服务执行脚本,而且只需简单3步即可完成跑测。

1、上传测试用例

进入云测之后,在 "测试用例管理"—"Minium用例" 中上传用例。注意,上传用例zip包,且云测解压后会与已存在的用例文件进行合并,合并逻辑为:

同名文件,会覆盖;新上传的文件,会保留;已存在的文件若未出现在本次上传用例包中,会保留。


2、新建测试计划

在"测试用例管理"—"测试计划" 中新建测试计划。注意这里和录制回放相同,勾选的顺序决定用例的顺序。大家可以通过调整勾选的顺序来调整用例执行的顺序。


3、提交测试任务

在"自动化任务管理"—"测试任务" 中新建测试任务

自定义测试时长,可根据用例数量以及预估用例执行耗时长短来决定,如果用例数量比较多可以设置长一点。

Minium配置,根据自己需求配置,可配置在assert的时候是否截图、在点击操作时是否截图、启动的时候是否relaunch到启动页面、是否启用小程序自动授权、在用例结束时, 是否记录当前页面的wxml信息、是否启用体验评分、小程序编译模式。


4、查看报告

跑测完成后,云测服务提供了详细的测试报告,主要包括 测试报告总览、用例详情和设备详情。

a)测试报告总览

报告总览列出了本次测试的基本情况,如小程序版本、小程序类型、测试计划、任务耗时、

跑测的设备数量,用例执行次数、测试结果(看是否执行成功)、问题分布环形图等。另外,还包括:

  • 问题列表:展现本次执行用例发现的问题,点击展开详情会从右侧展开问题详细情况,方便用户快速查看问题;
  • 用例列表:以用例维度展现本次测试跑测的所有用例信息、用例数、执行耗时、是否执行成功,点击查看详情可查看该用例本次跑测的详细信息;
  • 设备列表:以设备维度展现本次测试跑测的所有设备信息、用例通过率、跑测发现的问题,点击查看详情可查看该设备本次跑测的详细信息;
  • 资源占用:展现每次设备测试的启动耗时,平均内存和CPU等性能数据信息。

b)用例详情

点击用例列表中"查看详情"按钮,进入测试详情页面。它以用例为维度,展现本次测试跑测的用例信息,包括用例名称、该用例跑测的结果统计,跑测该条用例的所有设备信息,微信版本,基础库版本、小程序版本、测试账号等。还包括:

  • 运行截图:跑测用例的截图,包含setup、teardown截图、assert断言截图、点击操作截图等;
  • 运行日志:展示跑测用例过程中的日志信息;
  • 小程序日志:展示跑测用例过程中的小程序日志信息;
  • 资源占用:记录了跑测过程中的CPU和内存性能曲线,点击曲线点可以看到点前时间截图;
  • 网络请求详情:展示跑测过程中的小程序网络请求信息,如有发现网络请求异常,可在这里查看详细情况;
  • 错误日志:跑测用例失败的日志;
  • 体验评分:需手动开启体验评分,检查跑测用例过程中的运行时性能。

c)设备详情

点击设备列表或性能数据中"详情"按钮,进入测试详情页面。它以设备为维度,展示本次跑测详细信息,包括设备信息、该设备跑测的结果统计,跑测该设备的所有用例信息,微信版本,基础库版本、小程序版本、测试账号,另外有运行截图、运行日志、小程序日志、资源占用、网络请求详情、错误日志、体验评分


那么云测测试报告跟本地测试报告有什么区别呢?

本地报告相比与云测报告没有设备维度的信息,及资源占用信息,也没有体验评分数据,且网络请求日志在request.log文件中,不够直观。


四、执行方式对比

上面提到,Minium框架可以支持本地执行和云测服务执行。我们总结了两者之间的差异,分别从以下几方面做对比:

点击查看相关文档:使用自己的账号 | 虚拟账号跑测 | 第三方接口 | 快速打通Devops 流程


五、总结

自定义(Minium)测试相比于录制回放来说:

优点:

缺点:

●需要自己编写Python脚本,有一定的学习成本


最后大家在使用云测服务时遇到任何问题或者想要吐槽的,可以查看文档:需要帮助 | 微信开放文档

最后一次编辑于  2023-07-11
赞 0
收藏

1 个评论

  • 清蒸鱼
    清蒸鱼
    2022-12-30
    ·如果页面间传参不是通过query,这该怎么测指定的,只得从上个页面开始
    


    2022-12-30
    赞同
    回复
登录 后发表内容

小程序云测入门

课程标签