前言

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


↙↙↙阅读原文可查看相关链接,并与作者交流