Python中unittest的数据驱动详解

作者:weixin_72206076 时间:2021-06-04 18:26:05 

前言

在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程是一样的.如果重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一个测试用例,用例自动加载生成.

一.ddt简单介绍

1.ddt是什么

ddt:data driver tests ,数据驱动测试,是一种单元测试框架

2.使用ddt\的好处

如"前言"所说

3.导入ddt模块

ddt属于第三方模块,需要安装,安装方法:

  • 方法一:在cmd命令中输入:pip install ddt

  • 方法二:pycharm中打开终端,输入:pip install ddt

4.四种模式

ddt要与unittest单元测试框架一块结合使用

  • @ddt:引入ddt模块

  • @data:导入数据

  • @unpack:拆分数据     

  • @file_data:导入外部数据

二.ddt处理各种类型数据

注意:

  • 1.使用ddt模块要在测试类前用@ddt进行修饰

  •  2.要导入测试数据需在测试用例(以test_开头的方法)前用@data修饰

  •  3.若需对测试数据进行拆分需用@unpack修饰

  •  4.若需导入外部数据需用@file_data修饰

1.分析ddt工作原理

Python中unittest的数据驱动详解

 代码中@data(1,2,“jack”)传入了三个元素,故ddt自动生成了3个测试用用例。分别打印传入的数据

注意:

对于没有使用ddt的测试用例来说,一个test_开头的测试方法一次只能生成一个测试用例,但是有了ddt之后,可以一次向测试方法中传入多个测试数据,而生成测试用例的个数是根据@data中传入的测试数据的元素而定的.

2.ddt测试元祖数据

2.1测试单组元素

Python中unittest的数据驱动详解

2.2测试多组未分解元素

Python中unittest的数据驱动详解

 2.3测试多组分解元素

Python中unittest的数据驱动详解

 3.ddt测试列表数据

3.1多组列表拆分数据

Python中unittest的数据驱动详解

3.2复杂列表(含字典)拆分数据

Python中unittest的数据驱动详解

 4.ddt测试字典数据

4.1多组字典数据拆分

Python中unittest的数据驱动详解

 5.ddt测试字典列表数据结合

 在实际应用中会存在数据比较多的情况,如果都直接把数据传入@data中会显得代码非常冗杂,以包含多个字典的列表数据为例,可将包含多个字典的元素存放在一个列表变量中,在@data中传入列表变量即可

Python中unittest的数据驱动详解

 6.ddt测试读取文件数据

数据格式必须为json,且必须为双引号的键值对形式

Python中unittest的数据驱动详解

来源:https://blog.csdn.net/weixin_72206076/article/details/126527446

标签:Python,unittest,数据,驱动
0
投稿

猜你喜欢

  • 将字符实体引用转换成 Unicode 字符

    2011-07-01 12:31:51
  • oracle中的trim函数使用介绍

    2023-07-11 00:37:08
  • 如何编写一个只在Web服务关闭时执行的程序?

    2009-11-08 19:03:00
  • 发现IE6下URL path不会自动补全

    2009-03-31 12:52:00
  • JavaScript中实现字符串的取左取右(实现left和right功能)

    2009-07-20 12:39:00
  • JS 调试中常见的报错问题解决方法

    2023-07-16 07:42:13
  • SQL参数化查询的另一个理由 命中执行计划

    2012-08-21 10:31:16
  • 判断字段是否被更新 新旧数据写入Audit Log表中

    2012-01-29 17:56:33
  • Oracle PL/SQL入门慨述

    2010-07-18 12:57:00
  • Python无头爬虫下载文件的实现

    2023-11-30 03:24:00
  • 如何在MySQL查询结果集中得到记录行号

    2008-12-17 15:00:00
  • 基于ASP的站内多值搜索

    2010-05-11 20:03:00
  • PHP网站建设的流程与步骤分享

    2023-07-07 00:28:26
  • Gregarius中文日期格式问题解决办法

    2023-11-18 09:51:00
  • 深入了解MySQL的数据类型以及建库策略

    2008-12-17 16:16:00
  • 网页设计的12种颜色

    2011-05-21 08:40:00
  • OpenSearch 初探

    2008-06-19 12:06:00
  • php比较两个指定的日期的实例讲解

    2023-06-13 12:11:29
  • 用蜜罐来阻止垃圾评论

    2007-11-06 12:35:00
  • Web设计师的出路问题

    2009-06-08 13:07:00
  • asp之家 网络编程 m.aspxhome.com