1、数据驱动思想的原理
安装ddt模块:pip install ddt
数据驱动思想:以用例数据来生成测试用例(数据驱动用例生成),有多少条用例数据,生成多少条测试用例。
2、用ddt编写测试用例类
from day16_homework.ddt import ddt,data
import unittest
from readexcel import ReadExcel
from register import register
# @ddt 做的事情等同于这句代码==> RegisterTestCase = ddt(RegisterTestCase)
@ddt
class RegisterTestCase(unittest.TestCase):
#在类中创建一个对象来读取数据,就变成了类属性
excel=ReadExcel('case.xlsx','register')
cases=excel.read_data()
# @data中的传入所有数据(列表嵌套字典),将数据拆包传入,有多少个数据就创建多少条测试用例
@data(*cases)
def test_register(self,case): #测试用例函数中用case接收每一条数据
# 第一步:准备用例的执行的数据
data=eval(case["data"])
expected=eval(case["expected"])
case_id=case['case_id']
# 第二步:调用功能函数,获取实际结果
result=register(*data)
# 第三步:比对实际结果和预期结果
try:
self.assertEqual(expected,result)
except AssertionError as e:
self.excel.write_result(row=case_id+1,column=5,value='未通过')
raise e
else:
self.excel.write_result(row=case_id + 1, column=5, value='通过')