数据准备是接口测试过程中不可或缺的一步,也是花费时间很长的工作,因为程序的功能就是处理数据。那么在接口测试中,我们要怎样来准备数据呢?整理了以下一些关于数据准备的方法,希望对大家能有所帮助。
数据准备分为两种类型:
1、数据库中的基础数据;
2、基于web层的接口测试时,所依赖的session、param等数据;
一、数据库中的基础数据
和ruby脚本中的数据准备类似,接口测试中也使用excel文件来准备数据库的数据,但是excel的写法有所不同。
在建好测试类后(下图中的purchaseprocessservicetest.java),在同一目录下新建一个同名的excel文件,如图:
打开新建的excel,将下方的sheet名改成你要插入数据的数据库表名,如下图中的table_user表:
在excel中填写要插入的数据,如下图:
第 一行是表中的字段,第二行开始就是要插入的数据。
这里有个小技巧,可以先从pl/sql中查询到相关的数据,然后把它导出成一个csv文件,用excel打开这个csv文件,就可以直接把数据复制粘贴到excel中了:
excel写好后,要把它加到测试类中,这里使用标签来实现,在用例测试代码上面加如下标签:
@dataset({“purchaseprocessservicetest.xls”})
@test
public void test_n_测试用例_case01() {……..}
这样每次测试执行时,会先根据excel中的数据,查找数据库,如果excel中的数据在数据库中已存在,系统就会自动先将它们从数据库中删除,然后把excel中的数据全部插入数据库。
不过这样准备的数据是静态的,如果你想要准备动态的数据,如:你需要插入的数据中有个时间字段,这个字段的值是当前的系统时间。这样你就需要先用excel插入一条数据,然后在测试代码中,用jdbc来update这条数据,把数据中的时间改成你想要的时间,就可以了。
二、基于web层的接口测试
因为是针对web层的测试,所以需要在测试执行前,对接口所依赖的session、param等进行注入。
在itest中,我们用xml文件来实现这一步。
这样每次执行测试时,就会自动注入这些requst参数了。