egg-uitest
egg的UI操作插件
使用Headless浏览器puppeteer,实现对页面进行UI操作。可用于页面的UI测试以及线上页面监控。
通过配置实现,无需写额外的操作代码。
- 支持元素检测、点击、输入、键盘按键等操作
- 支持页面的请求拦截
- 支持viewport尺寸设置
Install
$ npm i egg-uitest -S
Usage
exports.uitest = {
enable: true,
package: 'egg-uitest',
};
Configuration
exports.uitest = {
};
Example
public async testOnce() {
const { ctx } = this;
const { config } = ctx.request.body;
ctx.body = await this.ctx.uitest(config);
}
config完整示例
{
"config": {
"page": {
"url": "https://m.baidu.com"
},
"monit": {
"delay": 1,
"steps": [
{
"type": "check",
"elements": [
{
"name": "搜索框",
"selector": "#index-kw"
}
]
},{
"type": "type",
"value": "新闻联播",
"elements": [
{
"name": "搜索框",
"selector": "#index-kw"
}
]
},{
"type": "keyboard",
"key": "Enter",
"options": {
"screenshot": true
}
}, {
"type": "check",
"elements": [
{
"name": "播放按钮",
"selector": ".kg-video-result-abstract-play"
},{
"name": "商品图片",
"selector": ".product"
}
],
"options": {
"delay": 1
}
}
]
}
}
}
返回示例
{
"monitResult": {
"result": false,
"msg": "【商品图片】数量有误,目标为1个,现有0个。",
"process": [
"【等待1s...】",
"【搜索框】数量正确",
"【搜索框】输入内容【新闻联播】",
"【Enter键】",
"【截图】http://image.uc.cn/s/uae/g/0n/uim/1569322222459-i0co6hwgf8e.png",
"【等待1s...】",
"【播放按钮】数量正确",
"【等待1s...】",
"【商品图片】数量有误,目标为1个,现有0个。"
]
},
"errScreenShot": "http://image.uc.cn/s/uae/g/0n/uim/1569322224782-r8o39tc206m.png"
}
具体配置
{
page,
viewport,
monit,
}
page
{
"url": "https://baidu.com",
"request": [
{
"urlFilters": [ "baidu.com" ],
"params": {
"token": "asjKJYJK8888hHJKK"
}
}
]
}
viewport
{
"width": 375,
"height": 667,
}
monit
{
"delay": 3,
"steps": [
{
"type": "check",
"elements": [{
"name": "",
"selector": "",
"amount": 10,
}],
"options": {
"delay": 1,
"screenshot": false,
},
"value": "",
"key": "",
}
],
}
License
MIT