测试过程经常会碰业务逻辑固定不变的功能,操作过程都是一样的区别在输入的测试数据不同(比如登录)。这种情况,如果重复去写测试的操作过程会增加代码量,对应这种多组数据的测试用例,可以应用数据驱动模式,一组数据对应一个测试用例,用例自动加载并执行。
1.环境
通过pip在线安装ddt模块
>> python -m pip install ddt
2.数据驱动原理
1.测试数据为多个字典组成的列表类型
2.测试类加修饰@ddt.ddt
3.用例加修饰@ddt.data()
4.运行后用例会自动加载成多个单独的用例
3.示例代码
#!/usr/bin/python3
# coding-utf-8
import ddt
import unittest
data = [{"tool":"selenium","language":"python"},
{"tool":"jmeter","language":"java"},
{"tool":"loadrunner","language":"C"}]
@ddt.ddt
class Test_ddt(unittest.TestCase):
@ddt.data(*data)
def test(self,data): # 传参测试数据列表
print("############# start #############")
print("工具: %s —> 语言: %s"%(data["tool"],data["language"]))# 通过字典的key获取value
print("############# end #############\n")
if __name__ =="__main__":
unittest.main()