研发效能 通用造数据平台

fernandozhu · 2024年07月31日 · 最后由 newman 回复于 2024年08月02日 · 5650 次阅读

前言

1、自动化测试过程中,我们的基础数据或者动态参数如何管理,与自动化 case 耦合在一起显然是不可能的,维护成本太高;跨环境或者迁移时,基础数据或者动态参数怎么处理,维护在数据库显然也不太合适,易用性太差,为了解决此问题,我开发了一个专门用于生产数据的平台,将数据与 case 分离,管理和使用起来更加便捷。
2、如果针对功能的迭代,我们不熟悉上游业务怎么办,不可能花费太多时间去了解别的业务,如果上游业务的数据能通过脚本产生,我们需要时直接在一个公用平台执行即可,这对团队的帮助是非常大的。

一、业务背景

开发、测试、产品人员进行下游需求开发、测试、验收时相关人员可能不了解上游业务,需要花费一定的时间去了解和熟悉。会浪费一定的时间,因此提供一个公用的通用造数据平台,提供给相关人员使用,并且不依赖专门的团队去开发前后端服务,任何拥有开发能力的人员都可以提供造数据脚本,存储在平台里,需要使用时执行即可,逻辑有变更修改即可。

二、实现原理

利用 JAVA 的反射机制,造数脚本提供者在页面上维护代码,将上游业务的核心逻辑抽象,封装成对应的方法,并且将核心参数提取,针对方法、参数设置别名、默认值,做到见名知意。前端页面有一套公共的模板,会将方法、参数、类型等信息渲染好。并且代码依赖的第三方包可以随时上传,不需要重启造数据平台,在执行方法时会动态加载所需要的第三方依赖。

三、开发语言&框架

前端:javaScript+vue+element-ui
后端:java+sprintBoot+mybatis

四、架构设计

五、使用方法

1、项目配置:区分脚本属于什么业务/分类

2、JAR 包管理:脚本中依赖的第三方 JAR 包

3、数据源管理:脚本中使用的数据源如 mysql、redis、mongo、kafka 等 (拓展功能,会在脚本编辑页面生成对应数据链接的代码块,可用可不用)

4、代码脚本:编辑方法、参数的别名后,可直接执行 (需确保脚本编译通过,页面有编译功能)
脚本列表

脚本新增、编辑

方法别名 (脚本列表:配置方法)

参数别名、默认值、placeholder、控件类型 (脚本列表:配置方法->配置参数)

执行脚本 (脚本列表:执行)

六、应用场景

1、作为测试团队的基础设施,平时工作中积累的核心业务脚本可以维护在平台,方便其他人使用

2、作为自动化测试的前置服务,比如核心的基础数据 (参数)、切换环境可以利用其积累的脚本快速初始化

3、提升测试效率,可以开发给测试团队的上下游使用,降低需要熟悉业务的时间成本

七、代码地址

前端:https://github.com/fernandozw/front_qa
后端:https://github.com/fernandozw/createdata

共收到 5 条回复 时间 点赞

这类工具,看麻了

那请问 有没有好的造数项目推荐呢

难以怀瑾 回复

没有,我打从心里觉得这个方向的工具是鸡肋😈 ,华而不实
金融业务会有,但是都是量身打造,你看到能分享出来的,基本都类似接口测试平台

公司内部能正常落地的话,帮助测试人员提升效率的话,工具也就不能算什么鸡肋了。就像之前看到的 ‘’ 不管黑猫白猫,能够抓到耗子的,就是好猫 ‘’,这句话其实也适用于我们大家提供出来的一些工具。毕竟人能力有高低,水有深浅。

根据我过往项目经验,个人认为造数平台其实并不具备通用性,或者只能做到相同行业小范围通用。这种工具要想做的好用一定是紧贴业务平台的。尤其是一个复杂的业务系统的造数平台,第一肯定要具备操作数据库,消息中间件,接口等多种形式的数据接入,第二是造出的数据要具备可测性,数据生成规则要跟业务属性强相关,否则造出来的就是垃圾数据。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册