简单介绍
"htmlcode">
from ddt import ddt, data from common.read_excel import ReadExcel from common.my_logger import log @ddt # 装饰登录测试用例类,声明使用ddt class LoginTestCase(unittest.TestCase): excel = ReadExcel("cases.xlsx", "login") cases = excel.read_data() @data(*cases) # 装饰测试用例 def test_login(self, case): case_data = eval(case["data"]) expected = eval(case["expected"]) case_id = case["case_id"] result = login_check(*case_data) response = self.http.send(url=url, method=method, json=data, headers=headers) result = response.json() try: self.assertEqual(expected["code"], result["code"]) self.assertEqual((expected["msg"]), result["msg"]) except AssertionError as e: log.info("用例:{}--->执行未通过".format(case["title"])) print("预期结果:{}".format(expected)) print("实际结果:{}".format(result)) raise e else: log.info("用例:{}--->执行通过".format(case["title"])) if __name__ == '__main__': unittest.main()
"htmlcode">
cases = [{'case_id': 1, 'title': '正常登录', 'data': '("test", "Test1234")', 'expected': '{"code": 0, "msg": "登录成功"}'}, {'case_id': 2, 'title': '密码错误', 'data': '("test", "123")', 'expected': '{"code": 1, "msg": "账号或密码不正确"}'}, {'case_id': 3, 'title': '账户名错误', 'data': '("test11", "Test1234")', 'expected': '{"code": 1, "msg": "账号或密码不正确"}'}] # *解包后,一个字典就是一个测试用例数据 # 如第一个字典:{'case_id': 1, 'title': '正常登录', 'data': '("test", "Test1234")', 'expected': '{"code": 0, "msg": "登录成功"}'}
"htmlcode">
# 传递json """ json文件数据 { "token":123456, "actionName": "api.login", "content": { "user": "miki", "pwd": "Test123" } } """ """ yaml文件 test_list: - 11 - 22 - 12 sorted_list: [ 11, 12, 22 ] """ from ddt import * @ddt # 声明使用ddt class TestFile(unittest.TestCase): @file_data('D:/test/test.json') def test_json(self, json_data): print(json_data) @file_data('D:/test/test.yaml') def test_yaml(self, yaml_data): print("yaml", yaml_data)
以上就是python 基于DDT实现数据驱动测试的详细内容,更多关于python 实现数据驱动测试的资料请关注其它相关文章!