从0到1精通自动化,接口自动化测试——数据驱动DDT实战

这篇具有很好参考价值的文章主要介绍了从0到1精通自动化,接口自动化测试——数据驱动DDT实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

DDT简介

名称:Data-Driven Tests,数据驱动测试
作用:由外部数据集合来驱动测试用例的执行
核心的思想:数据和测试代码分离
应用场景:一组外部数据来执行相同的操作
优点:当测试数据发生大量变化的情况下,测试代码可以保持不变
实际项目:excel存储测试数据,ddt读取测试数据到单元测试框架(测试用例中),输出到html报告

什么是数据驱动

就是数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变。说的直白些,就是参数化的应用

1、DDT使用-传递基础数据类型

# 导入ddt库下所有内容
from ddt import *


# 在测试类前必须首先声明使用 ddt
@ddt
class imoocTest(unittest.TestCase):
    
    # int
    @data(1, 2, 3, 4)
    def test_int(self, i):
        print("test_int:", i)

    # str
    @data("1", "2", "3")
    def test_str(self, str):
        print("test_str:", str)

测试结果

test_int: 1
test_int: 2
test_int: 3
test_int: 4
test_str: 1
test_str: 2
test_str: 3

想使用DDT首先要在单元测试类上面加上 @ddt

2、DDT使用-传递一个复杂的数据结构

from ddt import *


# 在测试类前必须首先声明使用 ddt
@ddt
class imoocTest(unittest.TestCase):
    tuples = ((1, 2, 3), (1, 2, 3))
    lists = [[1, 2, 3], [1, 2, 3]]

    # 元组
    @data((1, 2, 3), (1, 2, 3))
    def test_tuple(self, n):
        print("test_tuple", n)

    # 列表
    @data([1, 2, 3], [1, 2, 3])
    @unpack
    def test_list(self, n1, n2, n3):
        print("test_list", n1, n2, n3)

    # 元组2
    @data(*tuples)
    def test_tuples(self, n):
        print("test_tuples", n)

    # 列表2
    @data(*lists)
    @unpack
    def test_lists(self, n1, n2, n3):
        print("test_lists", n1, n2, n3)

    # 字典
    @data({'value1': 1, 'value2': 2}, {'value1': 1, 'value2': 2})
    @unpack
    def test_dict(self, value1, value2):
        print("test_dict", value1, value2)

测试结果

test_dict 1 2
test_dict 1 2
test_list 1 2 3
test_list 1 2 3
test_lists 1 2 3
test_lists 1 2 3
test_tuple (1, 2, 3)
test_tuple (1, 2, 3)
test_tuples (1, 2, 3)
test_tuples (1, 2, 3)

注意:
@unpack :当传递的是复杂的数据结构时使用。比如使用元组或者列表,添加 @unpack 之后, ddt 会自动把元组或者列表对应到多个参数上。字典也可以这样处理

当没有加unpack时,test_case方法的参数只能填一个;如元组的例子

当你加了unpack时,传递的数据量需要一致;如列表例子中,每个列表我都固定传了三个数据,当你多传或少传时会报错,而test_case方法的参数也要写三个,需要匹配上

当传的数据是字典类型时,要注意每个字典的key都要一致,test_case的参数的命名也要一致;如字典的例子,两个字典的key都是value1和value2,而方法的参数也是

当传的数据是通过变量的方式,如元组2、列表2,变量前需要加上*

3、DDT使用-传递 json文件

json文件

{
  "first": [
    {
      "isRememberMe": "True",
      "password": "111111",
      "username": "root"
    },
    "200"
  ],
  "second": [
    "{'isRememberMe': True, 'password': '1111111', 'username': 'root'}",
    "406"
  ],
  "third": [
    1,
    2
  ],
  "four": "123123"
}

单元测试类

from ddt import *


# 在测试类前必须首先声明使用 ddt
@ddt
class imoocTest(unittest.TestCase):

    @file_data('F:/test/config/testddt.json')
    def test_json(self, data):
        print(data)

测试结果

[{'isRememberMe': 'True', 'password': '111111', 'username': 'root'}, '200']
["{'isRememberMe': True, 'password': '1111111', 'username': 'root'}", '406']
[1, 2]
123123

4、DDT使用-传递Yaml文件

yaml文件

unsorted_list:
  - 10
  - 15
  - 12

sorted_list: [ 15, 12, 50 ]

单元测试类

from ddt import *


# 在测试类前必须首先声明使用 ddt
@ddt
class imoocTest(unittest.TestCase):

    @file_data('F:/test/config/testddt.yaml')
    def test4(self, data):
        print("yaml", data)

测试结果

yaml [10, 15, 12]
yaml [15, 12, 50]
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

从0到1精通自动化,接口自动化测试——数据驱动DDT实战

二、接口自动化项目实战

从0到1精通自动化,接口自动化测试——数据驱动DDT实战

三、Web自动化项目实战

从0到1精通自动化,接口自动化测试——数据驱动DDT实战

四、App自动化项目实战

从0到1精通自动化,接口自动化测试——数据驱动DDT实战

五、一线大厂简历

从0到1精通自动化,接口自动化测试——数据驱动DDT实战

六、测试开发DevOps体系

从0到1精通自动化,接口自动化测试——数据驱动DDT实战

七、常用自动化测试工具

从0到1精通自动化,接口自动化测试——数据驱动DDT实战

八、JMeter性能测试

从0到1精通自动化,接口自动化测试——数据驱动DDT实战

九、总结(尾部小惊喜)

每一次的努力都不会白费,即使结果不是你想要的,也为你积累了经验和成长。所以,不要害怕失败,不要停止前进。只有持续奋斗,你才能不断超越自己,迎接更美好的未来!

只有不断努力,才能追逐自己的梦想;只有勇敢面对困难,才能站在人生巅峰;只有拼尽全力,才能收获辉煌的人生。所以,不要停下前进的步伐,一定要坚持奋斗,让未来更加美好!

生命中最大的挑战不是遇到困难,而是如何克服自己的惰性和恐惧去迎接挑战。只要你有决心和毅力,任何事情都可以变得可能。相信自己,坚定前行,你会看到成功的曙光。文章来源地址https://www.toymoban.com/news/detail-503401.html

到了这里,关于从0到1精通自动化,接口自动化测试——数据驱动DDT实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python+Pytest+Allure+Git+Jenkins数据驱动接口自动化测试框架

    一、接口基础 接口测试是对系统和组件之间的接口进行测试,主要是效验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。其中接口协议分为HTTP,RPC,Webservice,Dubbo,RESTful等类型。 接口测试流程 1、需求评审,熟悉业务和需求 2、开发提供接口文档 3、编写接口测

    2024年02月08日
    浏览(83)
  • JMeter 接口自动化测试:从入门到精通的完全指南

    JMeter 是一个开源的负载测试工具,它可以模拟多种协议和应用程序的负载,包括 HTTP 、FTP、SMTP、JMS、 SOAP 和 JDBC 等。在进行接口自动化测试时,使用 JMeter 可以帮助我们快速地构建测试用例,模拟多种场景,发现接口的性能问题。下面是一些 JMeter 接口自动化测试的步骤和技

    2024年02月11日
    浏览(78)
  • python+pytest+selenium+PO+allure+DDT实现web自动化测试

    python:编程语言 pytest:独立的、全功能的python单元测试框架 selenium:用于web应用程序测试的工具 allure:测试报告展示 ddt:数据驱动 1.1 python解释器 3.10版本 1.2 pycharm集成开发环境 社区版 下载浏览器驱动,浏览器驱动版本要与浏览器版本一致。 下载地址: Chrome:http://npm.ta

    2024年02月02日
    浏览(63)
  • 数据驱动+自动化测试

    自动化测试代码优化 setUp 在每个测试用例执行之前执行 tearDown 在每个测试用例执行完以后执行 所以,可以利用setUp,把测试用例中的通用代码提取出来,减少冗余 数据驱动测试:优化自动化测试 安装: pip install pyyaml pip install ddt 1 在data中创建测试数据:格式为xxx.ymal 2 引入

    2024年02月14日
    浏览(43)
  • 自动化测试-数据驱动

    数据驱动:是以数据来驱动整个测试用例的执行,也就是测试数据决定测试结果。比如我们要测试加法,我们的测试数据是1和1,测试结果就是2,如果测试数据是1和2,测试结果就是3。 1.数据驱动本身不是一个工业级标准的概念,因此在不同的公司都会有不同的解释。可以把

    2024年02月04日
    浏览(59)
  • 自动化测试之数据驱动与关键字驱动

    目录 1.录制/回放的神话 2.数据驱动的自动化测试框架 3.驱动的自动化测试  初次接触自动化测试时,对数据驱动和驱动不甚理解,觉得有点故弄玄须,不就是参数和函数其嘛!其实其也体现了测试所不同与开发的一些特点(主要指系统测试),以及和对技术发展

    2024年02月17日
    浏览(48)
  • Python自动化测试数据驱动解决数据错误

    数据驱动将测试数据和测试行为完全分离,实施数据驱动测试步骤如下: A、编写测试脚本,脚本需要支持从程序对象、文件或者数据库读入测试数据; B、将测试脚本使用的测试数据存入程序对象、文件或者数据库等外部介质中; C、运行脚本过程中,循环调用存储在外部介

    2024年02月06日
    浏览(40)
  • 自动化测试框架之关键字驱动和数据驱动

    文章架构 1.什么是驱动 2.什么是数据驱动 3.数据驱动和驱动的关系 4.数据驱动和驱动结合进行测试的实施流程 5.案例 1.什么是驱动? 驱动是自动化测试框架设计的核心内容,可以解决代码冗余、可读性、维护性、代码复用性等问题。 比如,

    2024年02月14日
    浏览(43)
  • UI 自动化测试框架:PO 模式+数据驱动!

    PO(PageObject)设计模式将某个页面的所有元素对象定位和对元素对象的操作封装成一个 Page 类,并以页面为单位来写测试用例,实现页面对象和测试用例的分离。 PO 模式的设计思想与面向对象相似,能让测试代码变得可读性更好,可维护性高,复用性高。 PO 模式可以把一个

    2024年02月03日
    浏览(306)
  • UI 自动化测试框架:PO 模式+数据驱动

    PO(PageObject)设计模式将某个页面的所有元素对象定位和对元素对象的操作封装成一个 Page 类,并以页面为单位来写测试用例,实现页面对象和测试用例的分离。 PO 模式的设计思想与面向对象相似,能让测试代码变得可读性更好,可维护性高,复用性高。 PO 模式可以把一个

    2024年02月06日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包