脚本专栏 
首页 > 脚本专栏 > 浏览文章

python 基于DDT实现数据驱动测试

(编辑:jimmy 日期: 2024/11/16 浏览:3 次 )

简单介绍

"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 实现数据驱动测试的资料请关注其它相关文章!

上一篇:python 获取计算机的网卡信息
下一篇:python中time tzset()函数实例用法
一句话新闻
微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 SiteMap