内容简介:在开发测试阶段作为开发人员你永远不知道你的测试和产品有什么沙雕操作,他们只会说xxx页面/功能有bug。想要复现也很难。前段时间正好看到了rrweb这个项目,索性基于它实现了定时间隔录制、主动上报、存入数据库、统一查看等功能,可以再项目开发时引入,再也不怕bug复现了。实测在
在开发测试阶段作为开发人员你永远不知道你的测试和产品有什么沙雕操作,他们只会说xxx页面/功能有bug。想要复现也很难。前段时间正好看到了rrweb这个项目,索性基于它实现了定时间隔录制、主动上报、存入数据库、统一查看等功能,可以再项目开发时引入,再也不怕bug复现了。
走过路过先来波start
实测在 windows 下安装最新的 MySQL8.0 会报错,重置密码也不行,原因不明,解决办法是安装 MySQL 5.7.25。 MAC OS 下安装最新版没有问题。
:sparkles: 特性
- 录制并回放任意 web 界面中的用户操作 前端封装+后端。
- 开箱即用。
- 支持跨域。
支持环境
-
Linux,MacOS,Windows。 - 现代浏览器和 IE11及以上。
- Electron
:minidisc: 后端架构
- 基于 NodeJS
- 数据库使用MySQL
- 服务框架使用express4
:computer: 前端架构
- 录制基于 rrweb
-
http请求默认依赖axios可配置为jQuery以及任何与jQuery结构相同的库 - 回放页面前端框架使用VUE
-
UI框架使用Element - 回放基于 rrewb-player
:package: 安装
-
安装MySQL并配置
./server/mysql.config里的端口号及用户密码 -
安装 NodeJS
-
进入项目目录
-
安装依赖
npm i #国内使用cnpm 复制代码
-
启动项目
node server 复制代码
operationRecord.js参数
const record=new Record({
url: '/operationRecord/add',//后台服务器url,如未修改服务器文件,应为:服务端ip+/operationRecord/add
name: '不知名的测试人员',//提交人,会显示在统计页面。默认:unknow
projectName: 'test',//需要连接的表名
ajaxFn:$,//ajax 提交函数,默认依赖axios,如果项目中使用的是jquery直接写$,可以使用人和和jquery结构一致的ajax库
msg:'你这东西有bug啊',//提交bug信息,最多255
isReport:'1',//是否认为上报,1:是,0:否。默认:0
interval:'2000',//提交间隔,默认10秒,单位ms
success: function (res) {
console.log(`成功的回调${res}`);
},
error: function (err) {
console.log(`失败的回调${err}`);
}
});
//方法
record.destroy(); //销毁
console.log(record) //查看属性
复制代码
:hammer: 示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>test</title>
</head>
<body>
<h1>test</h1>
<input type="text">
<button>测试</button>
<button>回放</button>
<script src="./js/axios.min.js"></script>
<script src="./js/operationRecord.js"></script>
<script>
let a = new Record({
url: 'ip地址+/operationRecord/add',
name: 'liu',
projectName: 'testProject',
msg:'测试信息',
interval:20000,
success: function (res) {
console.log(res);
}
});
</script>
</body>
</html>
复制代码
打开 http://localhost:9527/ 查看结果
:book: 目录结构
├── .git ├── .gitignore ├── README.md ├── datas // 录制数据储存目录 ├── node_modules ├── package.json ├── public // 静态文件目录 ├── ├── .DS_Store ├── ├── css // css文件 ├── ├── ├── element.min.css ├── ├── ├── fonts // 字体文件 ├── ├── ├── ├── element-icons.ttf ├── ├── ├── ├── element-icons.woff ├── ├── ├── player.min.css ├── ├── ├── reset.min.css ├── ├── ├── style.css // 自定义样式 ├── ├── index.html ├── ├── js // js文件 ├── ├── ├── axios.min.js ├── ├── ├── element.min.js ├── ├── ├── operationRecord.js ├── ├── ├── player.min.js ├── ├── ├── replay.js ├── ├── ├── vue.js ├── ├── replayer.html ├── readme.js ├── server // 服务器文件 ├── ├── local-zh.config // 表名中英文对应 ├── ├── mysql.config // mysql配置文件 ├── ├── mysql.js // mysql操作 ├── server.js // server 复制代码
以上所述就是小编给大家介绍的《利用现代浏览器所提供的强大 API 录制,回放并保存任意 web 界面中的用户操作》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- selenium录制脚本和回放
- Linux Shell制作录制回放功能脚本
- 仿真环境/流量回放/全链路压测
- 千人千面线上问题回放技术揭秘
- “流量回放” 在系统重构中的测试实践
- 旷视「智见AI」SpringCamp圆满结营 (附回放链接)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Imperfect C++中文版
威尔逊 / 荣耀、刘未鹏 / 人民邮电出版社 / 2006-1 / 75.0
汇集实用的C++编程解决方案,C++虽然是一门非凡的语言,但并不完美。Matthew Wilson使用C++十年有余,其间发现C++存在一些固有的限制,需要一些颇具技术性的工作进行弥补。本书不仅指出了C++的缺失,更为你编写健壮、灵活、高效、可维护的代码提供了实用的技术和工具。Wilson向你展示了如何克服C++的复杂性,穿越C++庞大的范式阵列。夺回对代码的控制权,从而获得更理想的结果。一起来看看 《Imperfect C++中文版》 这本书的介绍吧!