目录
DDT
一、DDT数据驱动
1.DDT:
Data Test(数据驱动测试)
2.数据驱动思想:
数据和用例进行分离,通过外部数据去生成测试用例
3.安装:
pip install ddt
4.应用
在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的。如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一个测试用例,用例自动加载生成
5.引用
from ddt import ddt.data
6.可以参考博客
1.ddt应用:https://blog.csdn.net/qq_39247153/article/details/81305042
2.ddt源码解析:https://blog.csdn.net/weixin_41754309/article/details/113093724
二、DDT的应用
1.读取excel封装函数:ReadExcel.py
https://blog.csdn.net/BJ1599449/article/details/116981111
2.注册函数:login.py文件【注册功能】
def login_check(username=None, password=None):
"""
登录校验的函数
:param username: 账号
:param password: 密码
:return: dict type
"""
if username != None and password != None:
if username == 'python26' and password == 'lemonban':
return {"code": 0, "msg": "登录成功"}
else:
return {"code": 1, "msg": "账号或密码不正确"}
else:
return {"code": 1, "msg": "所以的参数不能为空"}
3.测试文件:testcase.py文件
import unittest
from py26_16day.demo3.login import login_check
from py26_16day.demo3.ddt import ddt,data
from py26_16day.demo3.readexcel import ReadExcel
@ddt
class LoginTestCase(unittest.TestCase):
excel=ReadExcel("cases.xlsx","login")
cases=excel.read_data()
@data(*cases) #传入测试用例数据
def test_login(self,case):
"""注册用例"""
print("这个是case:",case)
data = eval(case["data"])
excepted =eval(case["excepted"])
res = login_check(*data)
row = case["case_id"] + 1
try:
self.assertEqual(excepted, res)
except AssertionError as e:
# 在excel中记录用例未通过
self.excel.write_data(row=row, column=5, value="未通过")
raise e
else:
# 在excel中记录用例通过
self.excel.write_data(row=row, column=5, value="通过")
4.cases.xlsx文件
三、修改ddt配置
实现的效果