测试数据准备的 3.0 时代

  1. 引入了 Core Service 和一个内部数据库。其中,内部数据库用于存放创建的测试数据的元数据;Core Service 在内部数据库的支持下,提供数据质量和数量的管理机制。
  2. 当一个测试数据被创建成功后,为了使得下次再要创建同类型的测试数据时可以更高效,CoreService 会自动在后台创建一个 Jenkins Job。这个 Jenkins Job 会再自动创建 100 条同类型的数据,并将创建成功的数据的 ID 保存到内部数据库,当下次再请求创建同类型数据时,这个统一测试数据平台就可以直接从内部数据库返回已经事先创建的数据。在一定程度上,这就相当于将原本的 On-the-fly 转变成了 Out-of-box,缩短整个测试用例的执行时间。当这个内部数据库中存放的 100 条数据被逐被使用,导致总量低于 20 条时,对应的 Jenkins Job 会自动把该类型的数据补足到 100 条。而这些操作对外都是透明的,完全不需要我们进行额外的操作。

最近有读到这篇文章,对于这个数据准备的过程有以下困惑:

core service 如何提供数据质量的管理呢?

1、 第一个数据如何创建?我最近有一个特殊的数据需要准备,准备测试 A 接口的数据,但是需要用到 B 接口的返回结果,需要一些前置信息,还有就是有的属性可能需要,有的属性在某次创建时不需要(不是说有默认值,而是直接不添加该数据)

比如

用例数据1: dict(name="Jack") 完全不需要age属性,也没有默认值比如age=0之类的
用例数据2: dict(name="Bob", age=20)

2、 像上面这么复杂的数据,如何创建出同类型的测试数据?如何判断数据的类型呢? 比如数据中某个属性是一个字符串,但是长度是 0 到 20 之间,但是有的属性又是 0 到 10 之间的字符串,这种情况如何知道是什么类型的数据呢?


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