unittest数据驱动之DDT

一、什么是DDT

  • DDT:Data Driver Test(数据驱动测试)
  • 数据驱动思想:数据和用例进行分离,通过外部数据去生成测试用例

二、DDT 的使用

1.安装 DDT

 pip install ddt

2.在测试用例使用ddt

2.1 准备一个测试用例

# 准备一个测试用例
dict01 = [{
     
    "case_id": 1,
    "url": "http://localhost:8989/user/checkLogin",
    "method": "POST",
    "title": "登陆成功",
    "data": {
     
        "userName": "root",
        "password": "root"
    },
    "except": {
     
        "code": 200,
        "msg": "成功"

    }

}]

2.2 编写一个测试用例类,导入ddt


import unittest

from cases import login
# 导入ddt
from ddt import ddt, data
from common.RequesHttp import request_heardes

login_log = login
datas = login_log.dict01


request01 = request_heardes()

#在类上面加上装饰器@ddt
@ddt
class test_login(unittest.TestCase):

	# 在方法上面加上装饰器@data,装饰器中的参数是所有的用例列表,需要进行拆包,在方法参数中定义一个case_reult(名字随意)用来接收用例数据
    @data(*datas)
    def test_login_check(self, case_reult):
        # 获取用例的信息
        url = case_reult['url']
        method = case_reult['method']
        data01 = case_reult['data']
        excepts = case_reult['except']
		
		# 发送请求
        request_result = request01.request01(url=url, method=method, data=data01)
        # 对请求结果进行json解析
        request_result01 = request_result.json()
        try:
        	# 做断言
            self.assertEqual(excepts['code'], request_result01['code'])
            self.assertEqual(excepts['msg'], request_result01['msg'])
        except AssertionError as e:
            print("失败")
            raise e
        else:
            print("成功")


if __name__ == '__main__':
	# 运行当前模块下的测试用例
    unittest.main()


2.3 运行的结果
"D:\Program Files (x86)\python3.8.2\python.exe" D:/PycharmProjects/ddt_test/cases_test/login_test.py
.
----------------------------------------------------------------------
Ran 1 test in 0.034s

OK
成功

Process finished with exit code 0

你可能感兴趣的:(python,3,python,unittest)