前置运行时准备

由于微信小程序开发环境是封闭的,因此使用常规的非侵入式测试技术无法实现,而诸如图像识别的 Airtest 测试框架虽然强大但并不优雅。直到微信官方推出了自动化测试 SDK 后,使得常规测试技术得以沿用。

整体所需的运行环境

  • NodeJS
  • 小程序开发者工具
  • 小程序自动化测试 SDK
  • 测试框架
  • 项目的工程源码(包括 appid )
  • 微信开发者账号与权限

小程序自动化测试 SDK 安装

小程序自动化 miniprogram 官方 SDK 本身不提供测试框架,但为开发者提供了一套通过外部脚本操控小程序的方案,从而实现小程序自动化测试的目的。

PS : 官方的 demo 工程 反馈了很多 issue, 脚本示例 在多台机器上并没有通过。不怎么靠谱的感觉

  1. npm i miniprogram-automator --save-dev

微信开发者工具与 Nodejs 安装

微信开发者工具的使用请自行了解 微信版本、基础库版本,与开发者工具(用最新稳定版即可)的版本的对照

Nodejs 安装(最新稳定版即可)

image.png

测试框架安装

按技术栈自选

NodeJS 栈

业界活跃的如 electron, puppeteer, mocha(中文站点) 等

Jest 自动化框架

Python 栈

MiniTest 自动化框架

运行环境

  • python 3.8及以上(建议使用最新版)
  • 微信开发者工具(且服务端口的设置项打开)
  • 微信版本、基础库等对应支持
  1. pip3 install https://minitest.weixin.qq.com/minium/Python/dist/minium-latest.zip
  • 路径说明
    • path/to/project: 指代填写存放小程序源码的目录地址,文件夹中需要包含有project.config.json文件
    • path/to/cli: 指代开发者工具cli命令路径。macOS: <安装路径>/Contents/MacOS/cli, Windows: <安装路径>/cli.bat
  1. # 检查 MiniTest 是否安装成功
  2. minitest -v
  3. # 启动监听相关的小程序工程(注意替换变量)
  4. "path/to/cli" auto --project "path/to/project" --auto-port 9420

image.png

官方示例的测试代码模拟

https://minitest.weixin.qq.com/#/minium/Python/framework/example

image.png

测试工程的配置示例

https://minitest.weixin.qq.com/#/minium/Python/framework/config

  1. {
  2. "project_path": "/Users/hailongchen/Desktop/miniprogram-demo",
  3. "dev_tool_path": "/Applications/wechatwebdevtools.app/Contents/MacOS/cli",
  4. "debug_mode": "debug"
  5. }

项目测试配置

官方 Demo 参考 https://git.weixin.qq.com/minitest/minitest-demo

image.png

屏幕录制2022-03-31 11.04.18.mov (9.53MB)

测试代码执行与报告生成

  1. # 运行测试代码的示例
  2. minitest -m test.first_test -c config.json -g
  3. # 生成报告的示例
  4. python3 -m http.server 12345 -d outputs

image.png

项目测试工程[WIP]

MiniTest 框架的使用