来自官方的介绍:
小程序主动化 SDK 为开发者提供了一套通过外部脚本操控小程序的方案河北人事考试网首页,从而实现小程序主动化测试的目的。
小我理解,这个小程序主动化工具,就是可以用代码去写一些脚本,可以操作小程序开发者工具
主动的实行一些操作。
官方文档: https://developers.weixin.qq3564/miniprogram/dev/devtools/auto/
运行环境(来自官方文档):
首先 npm init, 初始化一个项目。
实行下面饬令安装工具:
npm i miniprogram-automator --save-dev
复制代码
由于必要使用 jest 做为测试的工具北京人事考试中心网,所以必要安装 jest,实行以下两条饬令:
npm i jest --save-dev
npm i jest -g
复制代码
在目录下创建 test 文件夹,创建以.spec.js
结尾的文件,在此文件中写入测试代码, 我这里建立index.spec.js
。在 package.json 的 script 中添加:
{
"test": "jest"
}
复制代码
如许npm run test 文件名
就可以运行指定的测试文件。
我在尝鲜的时候在这里花了一些时间在连接小程序开发工具上。
首先必要在微信开发者工具, 设置->通用设置->安全中把服务端口打开。
index.spec.js
中添加连接的代码:
import automator from 'miniprogram-automator'
describe('index', () => {
let miniProgram
// beforeAll 透露表现在实行所有测试之前必要的操作
beforeAll(async () => {
miniProgram = await automator.launch({
cliPath: `${cli.bat文件的路径}`, // 假如是默认安装路径,就不必要写了
projectPath: `${项目路径}` //这里必要写上项目路径
})
}, 40000)
})
复制代码
这时候就可以实行饬令来测试连接小程序开发者工具了, 假如连接成功的话,在实行饬令后,就会主动打开微信开发者工具,假如连接失败,就是饬令行工具会关闭,并且打不开微信开发者工具。
一些连接经验:
目前这个工具只有四个 api: Automator, MiniProgram, Page, Element, 点击查看文档。
重要的使用思路就是用代码来操作小程序的操作。比如可以先用 MiniProgram 的页面跳转方法跳转到指定的页面,用 Page 的 callMethod 来实行相干的方法,再选取必要测试的元素,比较是否吻合预期。
这里展示一个小的示例。在电商小程序中,大部分页面都必要一进入就必要请求接口拿数据,我们通常把原始数据经过洗数据层变成前端想要的样子。如今就来测试一下是否初始的数据是我们期望的那样。
步骤是:
describe('index', () => {
let miniProgram
let page
// 连接微信开发者工具
beforeAll(async () => {
miniProgram = await automator.launch({
projectPath: `${root}`
})
page = await miniProgram.reLaunch('/pages/plp/plp') // 使用miniProgram的api跳转到指定页面
await page.waitFor(500) // 等待页面请求接口
}, 40000)
it('初始化洗数据后, 初始数据知足要求', async (done)=>{
const data = await page.data() // 使用page的方法获取当前页面的data
expect(data).toMatchObject({
items: expect.anything(),
facet: expect.anything()
}) // 通过jest的expect方法比较这个data是否吻合预期
done()
})
在实行
afterAll(async () => {
await miniProgram.close()
})
})
复制代码
实行 npm run test index
后,看到 pass 的字样,就透露表现这个测试通过了。
Jest 会主动把通过与不通过的测试用例都展示出来。
小程序主动化测试工具 api 很简单,思路也简单易懂郑州网站制作,可能连接的时候必要花一点时间。 实施好主动化测试可以提拔程序自己的健壮性。 之后还要花一些时间来深入的使用。
中国 · 北京
电话:4000-960-360
企业QQ:800-118-118
邮箱:800118118@b.qq.com