数据构造平台进化史
如果无法正常显示,请先停止浏览器的去广告插件。
1.
2.
3.
4. O1
面临的问题
O2 O3 O4
方案设计 功能实现 后续计划
5. 面临的问题
6. 面临的问题
开发:帮忙造个XXX的订单,我要自测一下
造数
产品:有个线上问题,请协助开发构造一下场景复现
一下
造数
测试:这个改动点测试很快,不过造数可能需要半天
时间
造数难,且效率低!!!
造数
7. 方案演进
手工->自动化 离散->集中 平台化
本地脚本 集成到jenkins 造数平台
• 非可视化运行环境 • 参数组件有限 • 丰富的参数组件
• 维护成本高 • 特定任务回放难 • 运行历史可查看可回放
• 脚本管理不便 • 历史记录展示不直观 • 方便上手
• 配置复杂
8. 方案设计
9. 平台新增一个造数脚本流程
开始
组件化
编写造数脚本
高效
低代码
编写前端页面
参数填写
运行脚本
结束
易用
自动化
10. 编写造数脚本-思考
开始
编写造数脚本
编写前端页面
思考:回想以往我们的造数脚本都包含了哪些内容呢?脚本编写可否优化?
举例:生成一条商品购买记录
注册
登录
充值
修改库存信息
参数填写
运行脚本
……
结束
购买商品
11. 编写造数脚本-组件化方案
开始
编写造数脚本
编写前端页面
通用方法组件化:抽取通用操作形成组件库,通过组合组件,按照组件的组
合顺序,生成脚本,提升用户脚本编写效率,降低操作门槛。
举例一:生成用户登录信息: 举例二:生成用户信息查询记录:
用户注册->用户登录 修改数据库(保证用户信息有效)->查询用户
参数填写
调用用户注册接口 操作数据库
调用用户登录接口 调用查询用户信息接口
运行脚本
结束
1.接口+接口
2.数据库+接口
插入用户信息,保
证查询的用户有效
接口调用
操作数据库
12. 编写造数脚本-自动生成脚本
生成查询用户信息记录
1
2
3
13. 编写前端页面-思考
开始
编写造数脚本
编写前端页面
参数填写
运行脚本
结束
问题:页面参数异构,页面数与脚本数成正比,如何降低前端编码开销?
14. 编写前端页面-组件化方案
开始
建立前端组件库:编写基于后端配置的前端页面,使用者无需前端基
础,可以通过配置生成表单,无需编码
编写造数脚本
编写前端页面
参数填写
运行脚本
结束
选
择
器
输
入
框
日
期
范
围
日
期
15. 参数填写
开始
受业务限制,参数取值范围动态变化,如何保证业务参数的有效性?
运行脚本前,可以通过按钮组件来触发一个辅助脚本,查询可用的
编写造数脚本
值,用脚本返回值对页面上的组件值进行初始化
编写前端页面
参数填写
运行脚本
结束
通用参数自动生成,简化用户操作
自动生成一些通用参数:城市、
合法ip、合法邮箱、电话号码、
随机数、定长随机串等等
16. 造数流程对比
我们的
传统的
开始
开始
编写造数脚本
编写前端页面 脚
本
编
写
参数填写 使
用
封装通用操作脚本 脚本组件库
拖动组件搭建页面 前端组件库
部分参数生成
运行脚本 运行脚本
结束 结束
自动化
17. 还有哪些特性
1
与业务解耦
2
支持多种脚本语言
3
丰富的造数方式
18. 功能实现
19. 平台功能框架图
Vue+js+css
脚本创建页面
脚本列表页面
前端组件库
权限配置
脚本运行页面
脚本组件库
DB配置
脚本报告页面
前端
自定义模板
Slave配置
后端
脚本配置
日志
脚本运行
参数生成模块
调度中心
server
定时任务
server
造数执行
xxx-biz.jar
造数执行
xxx-biz.jar
执行器
脚本库
20. 系统特性-脚本模块化管理
21. 脚本配置
22. 脚本运行界面
回放 定时任务
查看历史运行记录
23. 运行记录
24. 功能演示
25. 效果
截止目前,运行了16164次,平均每天运行46.57次。
26. 后续计划
27. 后续计划
1
2
支持更多的接口协议
执行器支持docker自动生成
支持自定义脚本模板
3
28. 360技术
THANKS
360质量效能