测试基础 关于 “测试数据准备的 3.0 时代” 的疑惑

醋精测试媛 · 2021年07月15日 · 最后由 醋精测试媛 回复于 2021年07月20日 · 4599 次阅读

测试数据准备的 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 之间的字符串,这种情况如何知道是什么类型的数据呢?

共收到 10 条回复 时间 点赞

感觉这是个概念,说白了就是构造数据的多种方式,可以 create,也可以 search,也可以提前构造等等,记得之前做数据构造系统的时候,可以创建数据,然后存到构造系统数据库,也可以到测试库里找符合条件的数据,可以做个 job 将符合条件的数据抓到数据构造数据库供各种测试使用。

kuroky 回复

1.请问有具体的 demo 吗?
2.请问您说的这个系统 创建数据有用到其他接口吗?

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

测试 A 接口需要 B 接口前置信息,那去 B 接口拿就行。你可以当做接口流程自动化用例去设计和使用。
至于属性不需要时直接不添加,可以了解下 builder 模式,这种写法可以只设定需要设置值的 key,不需要的不用写。

如何创建出同类型的测试数据?如何判断数据的类型呢?

个人理解原文里的同类型数据,指的应该是用相同造数据脚本执行得出的数据,所以称为 同类型 。

话说 测试数据准备的 3.0 时代 这个可以去哪读到这篇文章呢

晓兮 回复

极客时间 软件测试 52 讲 测试数据部分

陈恒捷 回复

感觉懂是可以懂,但是实际上做接口自动化的时候,有的数据是非常复杂的,可能把它放到接口自动化流程的一部分,一个是有点不灵活(比如说用例 1 我需要某个特殊数据,用例 2 需要某个普通数据,那用一个函数可能实现起来比较复杂),另一个是放到业务流程中稍微有点臃肿了,可能我还是需要多练习一下具体的使用。

比如说用例 1 我需要某个特殊数据,用例 2 需要某个普通数据,那用一个函数可能实现起来比较复杂

放两个函数就行了。

我意思是这个造数据存在多接口依赖问题,解法可以参照流程自动化用例的解法,并不是说直接用流程自动化用例。你可以考虑用例做下分层,底层是每个接口的调用函数,中层是多个接口组合的流程调用函数(不带断言,所以不是用例),上层是调用中层并加上校验,成为自动化用例。这样中层就可以给造数据复用了。

晓兮 回复

应该是极客时间里的 软件测试 52 讲

如果你们用的是 protobuf,有数据字段约束,自然也可以根据反射知道字段类型来生成数据。至于有些字段长有些字段短,自然需要生成器读取某个配置文件,让他知道哪些字段该怎么生成

陈恒捷 回复

谢谢。之前没有考虑过接口测试还可以这样分层,学到了

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