requests+unittest对测试步骤的数据驱动

做接口自动化,或者UI自动化,对测试脚本的封装是一件很重要的事情。

封装带来的好处是,脚本容易维护,当数据与脚本或者代码分离后,我们只要更新我们的测试数据即可,测试脚本不要轻易的改动。

维护起来就轻松很多了。

从某种意义上来说,自动化测试的成败,很大程度上取决于我们的测试数据与测试脚本是否能成功的分离开。

 

今天继续讲述我们的接口自动化的数据的保存,或者叫数据驱动测试。

上篇文章我们把请求体封装到了一个标准的字典结构体中,

今天我们主要讲述把这个请求体中的数据拿出来,用yaml文件保存其中的数据。

这样,我们的任务就很清晰了。

接口测试的脚本只用来实现接口测试的动作,用例我们只负责组织和执行用例,断言结果成败,

那么,测试数据我们就从yaml文件中更改,不用到接口请求体的脚本中更改了。

 

一:导入yaml库,这个很简单,直接安装就可以了。

二:需要测试的数据复制到yaml文件中去,

如下:

requests+unittest对测试步骤的数据驱动

 

上图,少了一个业务层,大家知道就好。业务层是包含多个接口步骤的,一个用例就是一个业务的实现。

 

三:yaml文件的书写格式,

3.1:不要有逗号,key与value之间是有要空格的。

3.2:多个接口的测试数据写到同一个yaml文件中,要有标题,用来区分不同的接口。

例如:上图中的token与create,就是两个接口的名称。

四:读取yaml文件中的数据

如图:

4.1:封装一个读取yaml文件的方法:

requests+unittest对测试步骤的数据驱动

 

 4.2:具体的接口中,直接调用上图的读取yaml文件的方法。

requests+unittest对测试步骤的数据驱动

 

 

通过上面四个步骤,我们就可以实现测试数据与测试脚本的分离了,

注意yaml文件中的格式书写方式,刚开始时很容易出错的。

 

今天就大概的讲到这里了,下篇文章我们就要写业务层了,或者用例了,通过单元测试框架unittest来执行。

大家多练习,欢迎随时来找我交流,大家一起进步。

 

requests+unittest对测试步骤的数据驱动

上一篇:【hash+二分】Antisymmetry


下一篇:RabbitMQ知识(1)