微信小程序自动化测试完全实现。
参考:官方文档
miniprogram-automator
、jest
const automator = require('miniprogram-automator')
automator.launch({
cliPath: '/Applications/wechatwebdevtools.app/Contents/MacOS/cli', // 工具 cli 位置
projectPath: 'Users/liugezhou/Desktop/miniprogram', // 项目文件地址
}).then(async miniProgram => {
const page = await miniProgram.reLaunch('/pages/index/index')
await page.waitFor(500)
const element = await page.$('.btn')
await element.tap()
await miniProgram.close()
})
node index.spec.js
,完成单个示例测试。const automator = require('miniprogram-automator');
describe('index', () => {
let miniProgram;
let page;
const wsEndpoint = 'ws://127.0.0.1:9420';
beforeAll(async() => {
miniProgram = await automator.connect({
wsEndpoint: wsEndpoint
});
}, 30000);
it('test liugezhou/index.wxml', async() => {
page = await miniProgram.reLaunch('/pages/liugezhou/index')
await page.waitFor(500)
const element = await page.$('.liugezhou')
console.log(await element.attribute('class'))
await element.tap()
});
});
"e2e": "jest ./tests/pages liugezhou.test.js --runInBand"
cd /Applications/wechatwebdevtools.app/Contents/MacOS/
./cli --auto /Users/liugezhou/Desktop/miniprogram --auto-port 9420
npm run e2e
即可发现测试通过
miniProgram = await automator.connect({
wsEndpoint,
})
element 通过 page.$()获得