前置运行时准备
由于微信小程序开发环境是封闭的,因此使用常规的非侵入式测试技术无法实现,而诸如图像识别的 Airtest 测试框架虽然强大但并不优雅。直到微信官方推出了自动化测试 SDK 后,使得常规测试技术得以沿用。
整体所需的运行环境
- NodeJS
- 小程序开发者工具
- 小程序自动化测试 SDK
- 测试框架
- 项目的工程源码(包括 appid )
- 微信开发者账号与权限
小程序自动化测试 SDK 安装
小程序自动化 miniprogram 官方 SDK 本身不提供测试框架,但为开发者提供了一套通过外部脚本操控小程序的方案,从而实现小程序自动化测试的目的。
npm i miniprogram-automator --save-dev
微信开发者工具与 Nodejs 安装
微信开发者工具的使用请自行了解 微信版本、基础库版本,与开发者工具(用最新稳定版即可)的版本的对照
Nodejs 安装(最新稳定版即可)
测试框架安装
按技术栈自选
NodeJS 栈
Jest 自动化框架
Python 栈
MiniTest 自动化框架
运行环境
- python 3.8及以上(建议使用最新版)
- 微信开发者工具(且服务端口的设置项打开)
- 微信版本、基础库等对应支持
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
# 检查 MiniTest 是否安装成功
minitest -v
# 启动监听相关的小程序工程(注意替换变量)
"path/to/cli" auto --project "path/to/project" --auto-port 9420
官方示例的测试代码模拟
https://minitest.weixin.qq.com/#/minium/Python/framework/example
测试工程的配置示例
https://minitest.weixin.qq.com/#/minium/Python/framework/config
{
"project_path": "/Users/hailongchen/Desktop/miniprogram-demo",
"dev_tool_path": "/Applications/wechatwebdevtools.app/Contents/MacOS/cli",
"debug_mode": "debug"
}
项目测试配置
- 项目源码(导入到微信开发者工具中)
appid
选择器与元素定位
选择器 https://minitest.weixin.qq.com/#/minium/Python/introduction/selector 定位元素 https://minitest.weixin.qq.com/#/minium/Python/introduction/sample
测试代码执行与报告生成
# 运行测试代码的示例
minitest -m test.first_test -c config.json -g
# 生成报告的示例
python3 -m http.server 12345 -d outputs
项目测试工程[WIP]
MiniTest 框架的使用