接口自动化测试,测试数据怎么来?
接口自动化测试,测试数据怎么来?
蔡坨坨转载请注明出处❤️
作者:测试蔡坨坨
原文链接:caituotuo.top/f6b17bba.html
你好,我是测试蔡坨坨。
在之前的文章中,我们讨论了「自动化测试如何管理测试数据」。
趁热打铁,本篇我们就来接着讨论「自动化测试中的测试数据怎么来?」。
前言
在做接口自动化测试的过程中,接口参数的数据应该从哪里来比较好呢?是写死、从业务流中生成动态数据、还是从数据库获取。
如果是写死,那么一旦切换环境,测试数据可能就无法使用;如果是从业务流中获取,万一上一个接口出了问题,那么下一个接口不就会跟着出错吗;如果是从数据库获取,数据库中可能存在脏数据,是否会造成测试接口返回的信息不准确呢。
数据生成
关于接口自动化测试中测试数据的生成,坨坨根据个人经验,提供以下几种解决方案,供小伙伴们参考。
1 手动录入
通过手动创建测试数据,包括各种不同的输入、参数组合。
这种方式比较耗费时间和人力成本,适用于数据量较少的情况,不适合大规模的测试,且切换环境后可能就无法使用。
2 动态数据
从用例中生成,或使用数据生成工具生成需要的测试数据。
2.1 接口返回数据
在测试用例执行过程中,从接口返回的数据中提取需要的数据,再将这些数据用于下一个接口的测试。这种方法适用于接口之间有依赖关系的情况。比如:上一个接口查询商品,下一个接口添加购物车。
接口之间有依赖关系的场景,可能出现上一个接口报错,导致下一个接口也失败。对于这种情况,照常传参即可,因为多接口串联的用例,本身就是必须要保证每个接口都是正确的。上游控制不稳定,下游自然也会有问题,这个解决的下手点不在于接口如何传参,而是确定前置条件是否满足。
2.2 数据生成工具
使用数据生成工具自动生成符合要求的测试数据,例如:Faker、Mock、Mockito等,可以根据数据类型、长度、规则等条件来生成数据,这些数据可能是时间戳、随机数字、随机字符串等。
这种方式适用于需要大量随机数据的情况,可以加快测试速度,同时提高测试的可复用性。
PS:关于Faker的使用可参考往期文章「造数据神器 Faker,一个有趣又实用的 Python 第三方库」
3 静态数据
静态数据是指一些不变的数据,这些数据可以被硬编码到测试脚本中。
4 配置数据
对于接口地址、端口号、数据库信息等环境相关配置,通常存储在专门的配置文件中,供全局调用。
5 从数据库中获取
在测试用例执行前,通过SQL语句查询数据库获取需要的测试数据,再将数据导入测试用例中。
这种方法适用于需要大量数据的情况。
总结
在实际测试中,可能会组合使用以上几种数据来源来生成接口自动化测试数据。
无论使用哪种方式获取测试数据,都需要保证数据的准确性和完整性,以及数据的一致性和合理性。
同时,还需要根据接口的不同情况,设计不同的测试数据,包括正常数据、异常数据、边界数据等。
应遵循测试用例之间保持独立性,各个用例不会关联影响的原则。
为避免测试环境出现大量测试数据以及脏数据,可将用例形成闭环,例如在后置操作中进行删除。