前面我们已经实现了用unittest框架编写测试用例,实现了请求接口的封装,这样虽然已经可以完成接口的自动化测试,但是其复用性并不高。
我们看到每个方法(测试用例)的代码几乎是一模一样的,试想一下,在我们的测试场景中,一个注册接口有可能会有十几条到几十条测试用例,如果每组数据都编写一个方法,这样将会有更多的重复项代码,不仅执行效率不高,也不好维护。
接下来将会对框架进行优化,采用数据驱动方式,1)把测试数据用excel表格管理起来,代码做封装,2)用ddt来驱动测试,两部分相互独立。
1.数据与代码分离:excel管理测试数据
在上一节的代码中, test_register.py 模块中,定义了三个方法(三个测试用例),每一个测试用例都需要提供一组测试数据:url,params,method,expect_res等,不利于修改和构建,现在我们新建 excel文件(TestData.xlsx )。如下:
自动化用例设计:
关于自动化测试用例的设计,是基于对接口业务流程的熟悉,只有熟悉业务流程,才能设计出较好的自动化测试数据。这边要考虑的点很多,
- id:用例编号,从1开始,唯一
- module:接口模块
- case_name:用例名称
- method:请求类型
- url:接口地址信息
- params:请求参数
用例设计好了,这边我遇到了三个问题:
第一:如何读取测试数据?
第二:读取的测试数据,应该存储成什么格式?
第三:数据如何传递?
当然,用例的设计对于越复杂的场景,考虑的就会越多,其中有一点很重要,尽量保持用例的独立性,用例之间的关联性不要太强,避免一条用例的失败,导致其他用例也无法执行。
xlrd 使用
安装xlrd第三方库,pip install xlrd.from xlrd import open_workbook