一、测试数据准备1.0时代
将测试数据准备的相关操作封装成数据准备函数
- 缺点:
- 参数非常多,非常复杂
- 如果参数是对象就更复杂了
绝大多数的测试数据准备场景是,你仅仅需要一个所有参数都使用了缺省值的测试数据,或者只对个别几个参数由明确的要求,而其他参数都可以是缺省值的测试数据
createXXXUser
- 缺点:
- 对于参数比较多的情况,会面临需要封装的函数数量很多的尴尬
- 底层Impl函数参数改变,修改所有封装函数
- 数据准备函数的JAR包版本升级比较频繁
二、测试数据准备的2.0时代
Builder Pattern(生成器模式)
- 实例一
准备一个用户数据,具体参数没有任何要求,需要的仅仅是一个所有参数都可以采用默认值的用户
UserBuilder.build(); - 实例二
需要一个美国的用户
UserBuilder.withCountry(“us”).build(); - 新需求:
- 搜索符合条件的数据
- 全新创建的数据
- 尽快的获取数据
- 希望是Out-of-box的数据
- Build Strategy(数据构建的策略)
- search_only 搜索,找不到就失败
- create_only 创建
- smart 搜索,搜索不到就创建
- out-of-box 返回out-of-box中符合要求的数据,没有则返回失败
- 缺点
- Builder Pattern是基于Java事先的,无法跨平台
三、测试数据准备的3.0时代
将基于Java开发的数据准备函数用Spring Boot包装成Restful API,并且结合Swagger给这些API提供GUI界面和文档
统一测试数据平台的重要部分
- Core Service和一个内部数据库
内部数据库存放创建的测试数据的元数据,Core Service再内部数据库的支持下,提供数据质量和数量的管理机制 - 一个测试数据被创建成功,为了高效,Core Service后台自动创建一个Jenkins Job,创建100个,On-the-fly变成了Out-of-box
总量低再创建。