接口自动化测试的数据准备一般是怎么做的

最近在做接口自动化测试,在数据的准备方面遇到了一些难题

首先场景是公司的业务逻辑比较复杂,造一个数据可能会用到很多其他的资源,比如创建一个员工要用到一个公司,一个角色,一个部门。依次类推。

我们想到两种方案:

  1. 每次需要数据的时候都去发接口创建
    这种方法目前看来是优点是不会去访问数据库,接口变动时候改接口就可以了,通过api object及各种设计模式可以在接口变动的时候修改的成本低一些。
    缺点就是所有逻辑全是手动编写,编写的成本会高很多

  2. 首先去web页面把数据手动造好,然后把数据库dump下来,每次执行测试前去恢复一下环境
    这种方法目前看来优点是每次数据都是固定的,所以接口返回值应该都是固定的,编写的成本会低很多,可以使用接口录制等方法。
    缺点也就是如果数据库结构或者接口修改之后,之前的录制的脚本,和数据库dump的数据就失效了

想请教下各位大佬业界一般采取什么方法解决数据的准备

我习惯是第一种

第一步思路是对的,但是不要自己去手写。大量的接口构造数据其实通过web层的抓包是可以抓取出来的。利用抓包的数据重新生成你的接口api object的代码就可以了。需要用到一定的测试用例生成技术。

生成的测试用例技术是指类似于httprunner那样,用har数据包生成代码,然后再部分手动修改参数那样的技术吗?有什么开源项目可以作为参考吗?思寒大大

是的,HttpRunner已经算是做的挺不错了。可以根据需要再自己改进适配下自己的业务。har → api model → api testcase。swagger也实现了类似的模式,是通过直接生成代码风格的测试用例。目前没有特别完美的开源方案。我的建议是资源如果足够,自己开发个。如果资源不够,就选择其中一个方案。

目前比较成熟的是基于代码生成的swagger codegen,以及基于数据驱动的HttpRunner。根据你们的情况选择一个吧

1 个赞