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个用例,这就是数据驱动,适合用于测试多组数据合法性的场景,比如接口测试中测试各个参数是否有合法校验的时候就非常适合采用数据驱动测试的方法

目录
相关文章
|
1天前
|
传感器 数据采集 算法
LabVIEW无人机大气数据智能测试系统
LabVIEW无人机大气数据智能测试系统
12 3
|
1天前
|
XML 存储 测试技术
深入理解自动化测试中的数据驱动方法
【5月更文挑战第11天】 在软件测试领域,数据驱动测试(DDT)是一种高效的测试策略,它允许测试人员通过外部数据源控制测试用例的输入和输出。这种方法促进了测试用例的参数化,并提高了测试的灵活性和可维护性。本文将探讨数据驱动测试的核心概念、实施步骤以及使用Python进行数据驱动测试的实践案例,旨在为读者提供一种结构化的方法来设计和执行复杂的测试场景。
|
1天前
|
设计模式 敏捷开发 监控
深入理解自动化测试框架的设计原则与实践
【5月更文挑战第15天】在软件工程的领域里,自动化测试已成为提高软件开发效率、保障产品质量的重要手段。本文将深入探讨自动化测试框架的设计原则及其在实际项目中的应用实践。通过分析设计模式、模块化、可扩展性等关键因素,揭示构建高效、可靠自动化测试框架的策略和方法。同时,结合实际案例,展示如何在多变的测试需求中保持测试框架的稳定性和灵活性。
|
1天前
|
jenkins 测试技术 持续交付
Pytest测试框架
Pytest是一个功能强大的测试框架,支持单元测试和复杂功能测试,可结合Requests和Selenium等进行接口和自动化测试。它拥有超过315个插件,兼容unittest,并能与Allure、Jenkins集成实现持续集成。安装可通过pip或Pycharm。Pytest遵循特定命名规则,测试用例由名称、步骤和断言组成。断言用于验证预期结果,当失败时程序会终止。Pytest提供setup/teardown机制来管理测试前后的资源。
15 3
|
1天前
|
Web App开发 设计模式 测试技术
python自动化测试实战 —— 自动化测试框架的实例
python自动化测试实战 —— 自动化测试框架的实例
14 0
|
1天前
|
监控 数据可视化 IDE
python自动化测试实战 —— 单元测试框架
python自动化测试实战 —— 单元测试框架
13 2
|
1天前
|
Java 测试技术 数据库连接
【如何学习Python自动化测试】—— Python 的 unittest 框架
【如何学习Python自动化测试】—— Python 的 unittest 框架
6 0
|
1天前
|
敏捷开发 开发框架 自然语言处理
深入理解软件测试中的自动化框架选择
【5月更文挑战第12天】 在现代软件开发周期中,自动化测试已成为确保产品质量和加速市场交付的关键组成部分。选择合适的自动化测试框架对于实现有效的测试策略至关重要。本文将探讨在选择自动化测试框架时应考虑的关键因素,包括框架的可扩展性、易用性、社区支持和集成能力。通过分析比较Selenium、Appium和TestNG等流行框架的特点,本文旨在为读者提供一个清晰的指南,帮助他们根据具体的项目需求做出明智的选择。
|
1天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
1天前
|
数据采集 机器学习/深度学习 算法框架/工具
利用Python实现基于图像识别的自动化数据采集系统
本文介绍了如何利用Python编程语言结合图像识别技术,构建一个自动化的数据采集系统。通过分析图像内容,实现对特定信息的提取和识别,并将其转化为结构化数据,从而实现高效、准确地采集需要的信息。本文将详细讨论系统的设计思路、技术实现以及应用场景。