DDT 【data driver test 数据驱动测试】
一、先安装 ddt 模块:
-
方法一:可以直接 cmd 命令行敲: pip install ddt 【pip行不通试试 pip3 / pip.exe 安装】
-
方法二:按照下面的GIF图片,在pycharm直接安装![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/035784c04127557a2cc4cdfea5430de4.gif)
二、ddt 简单使用
-
先导入 ddt 模块: import ddt
-
class类上方输入: @ddt.ddt 【装饰器,固定语法,无需深究】
-
函数方法上方输入: @ddt.data( )
-
↑ ↑ ↑ 【括号传参,传几个参数就生成几条测试用例】
import unittest
import ddt
@ddt.ddt
class TestMethod(unittest.TestCase):
@ddt.data(1,2,3,4)
def test_001(self,case):
print("测试用例,第{}条".format(case))
if __name__ == '__main__':
unittest.main()
main方法输入测试结果:![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8ad15b06fb95fc7635e6b4bf00b762c4.png)
三、ddt 在用例中的使用
1. 封装一个类方法
'''封装一个类方法'''
import requests
class Login():
def __init__(self,userName,password):
self.userName = userName
self.password = password
def login(self):
url = 'http://182.92.197.48:8088/api/user/login'
json = {"userName": self.userName, "password": self.password, "remember": False}
header = {"user-Agent": "Mozilla/5.0", "Content-Type": "application/json"}
res = requests.post(url, headers=header, json=json)
print(res.json())
return res.json()
Login("xzsks001","123456").login()
2. 准备变量参数数据 , 使用 ddt 分离数据
import unittest
import ddt
from DDT.test_login import Login
data_info = [ {"params":("xzsks001","123456"),"excepted":{'code': 1, 'message': '成功'}},
{"params":("xzsks","123456"),"excepted":{'code': 402, 'message': '用户名或密码错误', 'response': None}},
{"params":("zhangsan","123"),"excepted":{'code': 402, 'message': '用户名或密码错误', 'response': None}}]
@ddt.ddt
class TestMethod(unittest.TestCase):
@ddt.data(*data_info)
def test_001(self,case):
excepted = case["excepted"]
params = case["params"]
result = Login(*params).login()
self.assertEqual(excepted,result)
if __name__ == '__main__':
unittest.main()
3.执行结果,生成测试报告
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e96d19c0a2741777ba6392800f9681d4.png)