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工作原理
代码中@data(1,2,“jack”)传入了三个元素,故ddt自动生成了3个测试用用例。分别打印传入的数据
注意:
对于没有使用ddt的测试用例来说,一个test_开头的测试方法一次只能生成一个测试用例,但是有了ddt之后,可以一次向测试方法中传入多个测试数据,而生成测试用例的个数是根据@data中传入的测试数据的元素而定的.
2.ddt测试元祖数据
2.1测试单组元素
2.2测试多组未分解元素
2.3测试多组分解元素
3.ddt测试列表数据
3.1多组列表拆分数据
3.2复杂列表(含字典)拆分数据
4.ddt测试字典数据
4.1多组字典数据拆分
5.ddt测试字典列表数据结合
在实际应用中会存在数据比较多的情况,如果都直接把数据传入@data中会显得代码非常冗杂,以包含多个字典的列表数据为例,可将包含多个字典的元素存放在一个列表变量中,在@data中传入列表变量即可
6.ddt测试读取文件数据
数据格式必须为json,且必须为双引号的键值对形式
来源:https://blog.csdn.net/weixin_72206076/article/details/126527446


猜你喜欢
- 今天为大家介绍一个Python绘制一朵漂亮的玫瑰花,用python的turtle库这个绘画库是非常简单的,但是还是需要你测试路径方向,慢慢调
- 0、实现效果能够通过一张标准图,对同一组相机拍摄的照片进行清晰度评价。1、概述图像清晰度是用来指导调焦机构找到正焦位置的评价函数。理想的清晰
- 在MySQL 8.0.18中,增加了Hash Join新功能,它适用于未创建索引的字段,做等值关联查询。在之前的版本里,如果连接的字段没有创
- 在对Python中的闭包进行简单分析之前,我们先了解一下Python中的作用域规则。关于Python中作用域的详细知识,有很多的博文都进行了
- 常见到网上博文有错误理论,包括身边很多朋友都曾认同“可访问性(Accessibility)是为残障人士准备”的观点。其实在互联网技术领域远不
- kafka go库kafka go客户端官方目前没有提供,但在github有2个非常流行的库星星较多,网上案例也多 https://gith
- perl用的最多的地方就算是文件处理了,下面我就总结了一下perl文件操作的一些东西,并且有具体的例子,通过下面的例子,加强我们对perl文
- 写一个简单的例子程序:# coding:utf-8import flaskfrom flask import json, jsonify,
- 脚本过于简单,供学习和参考。主要了解一下smtplib库的使用和超时机制的实现。使用signal.alarm实现超时机制。#!/usr/bi
- 同步:就是在执行栈中(主线程)执行的代码异步:就是在异步队列(macroTask、microTask)中的代码简单理解区别就是:异步是需要延
- 仿射密码思路:1、加解密公式:2、构造对应字典:3、代码实现构造字典,建立映射关系:# 构造字典,'A' --> 0
- 本文实例为大家分享了python web框架实现原生分页的具体代码,供大家参考,具体内容如下原生分页器 示例 &nbs
- 这篇文章主要介绍了python如何使用jt400.jar包代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 下次用python画图的时候选色选点都可以直接参考这边,牛逼!分享给大家,也给自己留个笔记。参考网址:http://stackoverflo
- Smarty Smarty的特点是将模板编译成PHP脚本,然后执行这些脚本。很快,非常灵活。 Heyes Template&nbs
- 一. 抛出异常Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,
- 本文实例讲述了PHP基于非递归算法实现先序、中序及后序遍历二叉树操作。分享给大家供大家参考,具体如下:概述:二叉树遍历原理如下:针对上图所示
- 前言我们在 django-rest-framework解析请求参数 文章中完成了接口文档到参数解析, 一个完整的流程中还
- 1.列表list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。列表中的项目。列表中的项目应该包括在方括号中,这样py
- 本文是小编针对js保留两位小数这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容:一、我们首先从经典的