UnitTest----UnitTest自动化测试框架结合数据驱动(DDT)应用实践

简介: UnitTest----UnitTest自动化测试框架结合数据驱动(DDT)应用实践

1、安装ddt

pip install ddt

2.使用方式

首先导入ddt,然后在测试类上使用@ddt.ddt装饰,测试方法使用@ddt.data()装饰,data里面填写参数即可,具体使用如下

2.1、测试函数有一个参数

代码如下:

import unittest
import ddt


@ddt.ddt
class TestDemo01(unittest.TestCase):

    @ddt.data(0, 1, 2, 3, 4, 5, -1, -2, -3, -4, -5)
    def test_01(self, x):
        print(x)


if __name__ == "__main__":
    unittest.main()

执行结果如下:

0
1
2
3
4
5
-1
-2
-3
-4
-5


Ran 11 tests in 0.004s

OK

2.2 、测试函数有多个参数,比如有两个参数

需要在测试函数上使用一个@ddt.unpack来装饰,参数使用元组形式,代码如下:

import unittest
import ddt


@ddt.ddt
class TestDemo01(unittest.TestCase):

    @ddt.data((0, 1), (2, 3), (4, 5), (-1, -2), (-3, -4))
    @ddt.unpack
    def test_01(self, x, y):
        print(x)
        print(y)
        print("*************************")


if __name__ == "__main__":
    unittest.main()

执行结果如下:

0
1
*************************
2
3
*************************
4
5
*************************
-1
-2
*************************
-3
-4
*************************


Ran 5 tests in 0.004s

OK

2.3、测试数据从yaml文件读取

例如在demo.yml文件中编写如下内容:

-
  name: "redrose2100"
  age: 33
-
  name: "redrose2200"
  age: 22
-
  name: "redrose2300"
  age: 25

在测试用例上使用@ddt.file_data()装饰器装饰,代码如下

import unittest
import ddt


@ddt.ddt
class TestDemo01(unittest.TestCase):

    @ddt.file_data("demo.yml")
    def test_01(self, **kwargs):
        print(kwargs.get("name"))
        print(kwargs.get("age"))
        print("-------------------")


if __name__ == "__main__":
    unittest.main()

执行结果如下:

redrose2100
33
-------------------
redrose2200
22
-------------------
redrose2300
25
-------------------


Ran 3 tests in 0.003s

OK

这里可以看到因为ymal文件中设置了三组数据,所以这里显示执行了3个用例,这就是数据驱动,适合用于测试多组数据合法性的场景,比如接口测试中测试各个参数是否有合法校验的时候就非常适合采用数据驱动测试的方法

目录
相关文章
|
2月前
|
人工智能 自然语言处理 测试技术
从人工到AI驱动:天猫测试全流程自动化变革实践
天猫技术质量团队探索AI在测试全流程的落地应用,覆盖需求解析、用例生成、数据构造、执行验证等核心环节。通过AI+自然语言驱动,实现测试自动化、可溯化与可管理化,在用例生成、数据构造和执行校验中显著提效,推动测试体系从人工迈向AI全流程自动化,提升效率40%以上,用例覆盖超70%,并构建行业级知识资产沉淀平台。
从人工到AI驱动:天猫测试全流程自动化变革实践
|
2月前
|
数据采集 存储 人工智能
从0到1:天猫AI测试用例生成的实践与突破
本文系统阐述了天猫技术团队在AI赋能测试领域的深度实践与探索,讲述了智能测试用例生成的落地路径。
从0到1:天猫AI测试用例生成的实践与突破
|
4月前
|
监控 安全 Shell
管道符在渗透测试与网络安全中的全面应用指南
管道符是渗透测试与网络安全中的关键工具,既可用于高效系统管理,也可能被攻击者利用实施命令注入、权限提升、数据外泄等攻击。本文全面解析管道符的基础原理、实战应用与防御策略,涵盖Windows与Linux系统差异、攻击技术示例及检测手段,帮助安全人员掌握其利用方式与防护措施,提升系统安全性。
211 6
|
4月前
|
Web App开发 人工智能 JavaScript
主流自动化测试框架的技术解析与实战指南
本内容深入解析主流测试框架Playwright、Selenium与Cypress的核心架构与适用场景,对比其在SPA测试、CI/CD、跨浏览器兼容性等方面的表现。同时探讨Playwright在AI增强测试、录制回放、企业部署等领域的实战优势,以及Selenium在老旧系统和IE兼容性中的坚守场景。结合六大典型场景,提供技术选型决策指南,并展望AI赋能下的未来测试体系。
|
2月前
|
存储 数据采集 监控
Python定时爬取新闻网站头条:从零到一的自动化实践
在信息爆炸时代,本文教你用Python定时爬取腾讯新闻头条,实现自动化监控。涵盖请求、解析、存储、去重、代理及异常通知,助你构建高效新闻采集系统,适用于金融、电商、媒体等场景。(238字)
366 2
|
2月前
|
数据采集 人工智能 自然语言处理
Playwright MCP 浏览器自动化框架全面解析
Playwright MCP是微软推出的开源项目,结合Playwright与MCP协议,让AI通过结构化数据直接操作浏览器。告别传统视觉识别,实现高效、精准的网页自动化,广泛应用于测试、爬虫、办公自动化等场景,大幅提升效率与可靠性。
|
3月前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
499 11
|
3月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
179 6
|
3月前
|
人工智能 边缘计算 搜索推荐
AI产品测试学习路径全解析:从业务场景到代码实践
本文深入解析AI测试的核心技能与学习路径,涵盖业务理解、模型指标计算与性能测试三大阶段,助力掌握分类、推荐系统、计算机视觉等多场景测试方法,提升AI产品质量保障能力。
|
3月前
|
人工智能 自然语言处理 测试技术
AI测试平台的用例管理实践:写得清晰,管得高效,执行更智能
在测试过程中,用例分散、步骤模糊、回归测试效率低等问题常困扰团队。霍格沃兹测试开发学社推出的AI测试平台,打通“用例编写—集中管理—智能执行”全流程,提升测试效率与覆盖率。平台支持标准化用例编写、统一管理操作及智能执行,助力测试团队高效协作,释放更多精力优化测试策略。目前平台已开放内测,欢迎试用体验!

热门文章

最新文章