1. 什么是自动化测试
小程序自动化SDK为开发者提供了一套通过外部脚本操控小程序的方案,从而实现小程序自动化测试的目的。
简单翻译:就是让开发者工具能按照代码的执行顺序自动在页面上完成点击、输入等操作(即模拟用户操作), 再将操作后的页面表现与预期想要的结果做对比得到测试结论(断言).
微信自动化官方文档>>
小程序自动化测试SDK具备的特性
- 控制小程序跳转到指定页面
- 获取小程序页面数据
- 获取小程序页面数据
- 获取小程序页面数据
- 获取小程序页面数据
- …等等
2. 环境配置
- 安装Node.js并且版本大于8.0;
- 基础库版本为2.7.3及以上;
- 开发者工具版本为1.02.1907232及以上;
- 要做自动化测试的项目(后面会介绍哦);
如何查看&修改基础库版本、请见下图.
如何查看开发者工具版本、请见下图
3. 实现步骤
1. 安装自动化测试SDK
成功截图
2. 安装jest脚本
小程序自动化 SDK 本身不提供测试框架,而可以使用 Jest 测试框架来编写一个实际的小程序自动化测试
成功截图
3. 编写测试用例
在小程序项目的根目录下,创建测试文件 index.spec.js (试过改文件名称名,结果启动不了)
const automator = require('miniprogram-automator');
describe('小程序自动化测试', () => {
let miniProgram;
beforeAll(async () => {
miniProgram = await automator.connect({
wsEndpoint: 'ws://localhost:9421',
});
});
// 运行测试后调用
afterAll(async () => {
await miniProgram.disconnect();
});
// 自动化测试内容
it('首页', async () => {
// 获取页面相关信息
const page = await miniProgram.reLaunch('/pages/home/index');
let headTabs = await page.$$('.home-tab-item');
headTabs[0].tap();
await page.waitFor(1000);
headTabs[1].tap();
await page.waitFor(1500);
let etcComponent = await page.$('etcComponent'); //获取自定义组件
let etcTabs = await etcComponent.$$('.etc-item'); //然后再通过组件获取组件页面里的元素再进行点击操作
etcTabs[0].tap();
await page.waitFor(1500);
}, 20000);
});
4. 启动连接
9421 :是自动化端口
31892 : 是服务端口,可在开发者工具菜单中的设置->安全设置->服务端口 中查看
开发者工具自动打卡并弹出 ,看下图,证明已连接成功