1、使用介绍
关于数据驱动这边就不给大家做过多的介绍了,数据驱动的目的是将测试数据和用例逻辑进行分离,提高代码的重用率,以及用例的维护,关于数据驱动本,unittestreport.dataDriver模块中实现了三个使用方法,支持使用列表(可迭代对象)、json文件、yaml文件来生成测试用例,接来分别给大家介绍一下使用方法:
from unittestreport import ddt, list_data,json_data,yaml_data
-
第一步:使用ddt装饰测试用例类
-
第二步:根据数据存储的方式,选择对应的方法进行传入用例数据
2、list_data的使用
用例数据保存在可迭代对象中(如列表),则可以使用list_data来实现数据
from unittestreport import ddt, list_data
@ddt
class TestClass(unittest.TestCase):
cases = [{'title': '用例1', 'data': '用例参数', 'expected': '预期结果'},
{'title': '用例2', 'data': '用例参数', 'expected': '预期结果'},
{'title': '用例3', 'data': '用例参数', 'expected': '预期结果'}]
@list_data(cases)
def test_case(self, data):
pass
用例数据的格式:列表嵌套字典
3、json_data
用例保存在json文件中,则可以使用json_data来实现数据驱动,使用json_data时,直接传入json文件的路径即可
from unittestreport import ddt,json_data
@ddt
class TestClass(unittest.TestCase):
@json_data('C:/xxx/xxx.json')
def test_case(self, data):
pass
json文件中的数据格式如下:
[
{
"title": "用例1",
"data": "用例参数",
"expected": "预期结果"
},
{
"title": "用例2",
"data": "用例参数",
"expected": "预期结果"
},
{
"title": "用例3",
"data": "用例参数",
"expected": "预期结果"
}
]
4、yaml_data
用例保存在yaml文件中,则可以使用yaml_data来实现数据驱动,使用yaml_data时,直接传入yaml文件的路径即可
from unittestreport import ddt,yaml_data
@ddt
class TestClass(unittest.TestCase):
@yaml_data("C:/xxxx/xxx/cases.yaml")
def test_case(self, data):
pass
yaml文件中的数据展示
- title: 用例1
data: 用例参数
expected: 预期结果
- title: 用例2
data: 用例参数
expected: 预期结果
- title: 用例4
data: 用例参数
expected: 预期结果
5、注意点:
-
关于使用ddt的时候进行数据驱动,指定测试报告中的用例描述:
-
测试报告中的用例描述默认使用的是用例方法的文档字符串注释,
- 如果要给每一条用例添加用例描述,需要在用例数据中添加title或者desc字段,字段对应的数据会自动设置为测试报告中用例的描述