接口自动化测试,测试数据怎么来?

转载请注明出处❤️

作者:测试蔡坨坨

原文链接:caituotuo.top/f6b17bba.html


你好,我是测试蔡坨坨。

在之前的文章中,我们讨论了「自动化测试如何管理测试数据」。

趁热打铁,本篇我们就来接着讨论「自动化测试中的测试数据怎么来?」。

前言

在做接口自动化测试的过程中,接口参数的数据应该从哪里来比较好呢?是写死、从业务流中生成动态数据、还是从数据库获取。

如果是写死,那么一旦切换环境,测试数据可能就无法使用;如果是从业务流中获取,万一上一个接口出了问题,那么下一个接口不就会跟着出错吗;如果是从数据库获取,数据库中可能存在脏数据,是否会造成测试接口返回的信息不准确呢。

数据生成

关于接口自动化测试中测试数据的生成,坨坨根据个人经验,提供以下几种解决方案,供小伙伴们参考。

1 手动录入

通过手动创建测试数据,包括各种不同的输入、参数组合。

这种方式比较耗费时间和人力成本,适用于数据量较少的情况,不适合大规模的测试,且切换环境后可能就无法使用。

2 动态数据

从用例中生成,或使用数据生成工具生成需要的测试数据。

2.1 接口返回数据

在测试用例执行过程中,从接口返回的数据中提取需要的数据,再将这些数据用于下一个接口的测试。这种方法适用于接口之间有依赖关系的情况。比如:上一个接口查询商品,下一个接口添加购物车。

接口之间有依赖关系的场景,可能出现上一个接口报错,导致下一个接口也失败。对于这种情况,照常传参即可,因为多接口串联的用例,本身就是必须要保证每个接口都是正确的。上游控制不稳定,下游自然也会有问题,这个解决的下手点不在于接口如何传参,而是确定前置条件是否满足。

2.2 数据生成工具

使用数据生成工具自动生成符合要求的测试数据,例如:Faker、Mock、Mockito等,可以根据数据类型、长度、规则等条件来生成数据,这些数据可能是时间戳、随机数字、随机字符串等。

这种方式适用于需要大量随机数据的情况,可以加快测试速度,同时提高测试的可复用性。

PS:关于Faker的使用可参考往期文章「造数据神器 Faker,一个有趣又实用的 Python 第三方库

3 静态数据

静态数据是指一些不变的数据,这些数据可以被硬编码到测试脚本中。

4 配置数据

对于接口地址、端口号、数据库信息等环境相关配置,通常存储在专门的配置文件中,供全局调用。

5 从数据库中获取

在测试用例执行前,通过SQL语句查询数据库获取需要的测试数据,再将数据导入测试用例中。

这种方法适用于需要大量数据的情况。

总结

在实际测试中,可能会组合使用以上几种数据来源来生成接口自动化测试数据。

无论使用哪种方式获取测试数据,都需要保证数据的准确性和完整性,以及数据的一致性和合理性。

同时,还需要根据接口的不同情况,设计不同的测试数据,包括正常数据、异常数据、边界数据等。

应遵循测试用例之间保持独立性,各个用例不会关联影响的原则。

为避免测试环境出现大量测试数据以及脏数据,可将用例形成闭环,例如在后置操作中进行删除。