unittest使用ddt数据驱动的小demo

2023-11-16

一、ddt简介
1.ddt是 data driven testing的缩写,中文含义是数据驱动测试。
2.ddt通常与unittest组合使用,常用的包有ddt,data,unpack,file_data(我这边使用前两种)

二、ddt安装
1.在pycharm控制台使用pip install ddt
2.进入pycharm的settings----project:--------Interpreter模块,找到pip,进入pip模块,搜索ddt,完成安装

三、ddt的使用
1.导包:from ddt import ddt,data
2.@ddt放在测试类的顶部(见附件)
3.@data放在测试方法的顶部,后面紧跟测试数据===》 @data(* testdata) 这里的 “ * ” 是拆包的意思,把测试数据拆成单独的一条。可以是单独的数字、字符串、也可以是列表、元组、字典

# -- coding: utf-8 --
# @Time : 2022/4/9 15:51
# @Author : tianqiang
# @File : testcase.py
# @Software: PyCharm
# @description:

import unittest
from TestCase.Myddt import ddt, data
from Common.Send_Request import HandlerRequest
from Common.OperateExcel import read_case
from Common.Conversion_Type import conversion_Type
from Common.RunLog import my_log


@ddt
class RunCase(unittest.TestCase):
    case_lists = read_case.read_excel()

    @classmethod
    def setUpClass(cls):
        cls.hr = HandlerRequest()

    @classmethod
    def tearDownClass(cls):
        pass

    @data(*case_lists)
    def test_case(self, case):
        new_data = conversion_Type.cast_type(case['data'])
        d = conversion_Type.cast_type(new_data)
        print(new_data)
        result_data = self.hr.send_request(method=case['method'], request_path=case['path'], case_data=d)
        actual_result = result_data.json()
        expected_result = eval(case['ExpectRequest'])
        try:
            self.assertEqual(expected_result["code"], actual_result["code"])
        except AssertionError:
            my_log.exception("断言失败!")
            my_log.info(f"获取执行的用例名{case['casename']},请求方法{case['method']},\n请求数据{new_data},\n响应结果{actual_result}")
            raise    # raise是为了将断言失败的用例 ,返回给框架。框架不能直接识别用例是否失败
        except:
            my_log.exception("断言失败以外的异常!")
            my_log.info(f"获取执行的用例名{case['casename']},请求方法{case['method']},\n请求数据{new_data},\n响应结果{actual_result}")
            raise



                                                                                                      ---------------------------------------------------学海无涯
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

unittest使用ddt数据驱动的小demo 的相关文章

随机推荐

  • 北斗系统学习—JT808协议用C语言解析

    前言 本人从事于Linux应用开发 音视频应用方向 现在主要是负者AI摄像头的开发 在学音视频的途中 虽然是个小白 但是更愿意把自己所学音视频的一些知识分享给大家 以后每周都会更新哦 本期介绍的是用c语言对Jt808协议解析 要对协议进行解
  • NotWritablePropertyException

    ssm项目又来一个低级错误 粗心粗心 异常信息 Caused by org springframework beans NotWritablePropertyException Invalid property mapperLocation
  • 【机器学习】人工神经网络(ANN)浅讲

    神经网络是一门重要的机器学习技术 它是目前最为火热的研究方向 深度学习的基础 学习神经网络不仅可以让你掌握一门强大的机器学习方法 同时也可以更好地帮助你理解深度学习技术 本文以一种简单的 循序的方式讲解神经网络 适合对神经网络了解不多的同学
  • Layui富文本编辑器图片上传接口(.NET C#)

    本来想偷懒找个现成的接口 搜了一下发现没有现成的 那我在这写一个并分享给大家吧 demo打包好了在我的csdn下载中心 http download csdn net download xianglikai1 9970000 下面也有代码和结
  • 设置QListWidget背景色为透明

    只要一条指令就可以实现 ui gt listWidget gt setStyleSheet background color transparent 其中background color设置参考CSS背景设置如下 以下摘自 http www
  • PD通信协议芯片选型分析对比

    目录 一 PD SINK协议芯片对比图 二 总结 关键词 pd协议芯片 协议芯片 芯片通信协议 通信协议 前言 在如今快节奏生活不断蔓延的背景下 人们对各种事情的处理也渐渐地开始要求在保证质量的情况下 不断加快 手机快充就是一个典型的例子
  • iOS开发之Xcode 6更新默认不支持armv7s架构

    最近一次的Xcode 6更新默认不再支持arm7s架构 究竟是要废除不用呢还是仅仅只是一个疏忽 目前的Xcode 6配置里定义 ARCHS STANDARD 为armv7 arm64 当然这个定义前提是它会一再要求你删除掉你原本设定的构建架
  • 将对象的null字段赋值为默认值

    import java lang reflect Field import java math BigDecimal import java util ArrayList import java util Date import org a
  • 【Redis详细教程】Linux下如何安装Redis

    第一步 下载 redis wget https download redis io releases redis 6 2 6 tar gz 第二步 解压 redis 6 2 6 tar gz 并将其重新命名为 redis tar xvf r
  • 前端实现:点击硬币实现硬币翻转动画,且动画停止时正反面随机

    html div class pic box div class boxes div class box 硬币正面图片 img alt 硬币反面图片 img div div div
  • 基于Spring Boot + Vue的智慧宿舍管理系统设计与实现

    Java全能学习 面试指南 https javaxiaobear cn 摘要 随着智能化技术的快速发展 智慧宿舍管理系统在大学校园中得到了广泛的应用 本论文旨在设计并实现一种基于前后端分离的智慧宿舍管理系统 通过将前端和后端进行分离 提高系
  • windows安装minio

    官网下载地址 https min io download windows 进入minio exe的目录执行启动命令 minio exe server C Users wwwch Desktop minio data C Users wwwc
  • 基于循环神经网络的图像特定文本抽取方法

    作者的模型整体框架包含两部分 分别为 OCR 部分 采用人家的模型 输出文本 特定文本抽取部分 作者的工作 1 引言 早期图像特定文本抽取主要是通过 OCR 中的版面分析 Layout analysis 来实现 即首先利用 版面分析 的方法
  • Python+django的ORM查询

    在使用python后端开发时 很多人都会遇到使用原生sql还是django自带的orm进行数据库的操作好呢 纠结的原因有很多 其中一点就是对orm不熟悉 导致某些查询可能不知道如何实现 于是采用了原生sql 今天 就让我们来总结一下常用的o
  • Windows10 配置 Swin-Transformer 踩坑记

    机器配置 rtx 3090 CUDA 11 1 Python 3 8 pytorch 1 9 0 步骤 1 下载Swin Transformer git clone recursive https github com SwinTransf
  • centos7执行命令iptables 出现Unit iptables.service failed to load: No such file or directory.

    解决方式 安装iptables services yum install iptables services 开机启动 systemctl enable iptables systemctl stop iptables systemctl
  • 更新powershell 7.3.2

    最近在使用VsCode时打开中断会时常提示你powershell已经更新前往地址下载 但是跳转到的页面描述有时候看不太清晰 于是去b站结合网络文档还是成功更新了 有兴趣的朋友可以通过这个链接查看一下在线文档 gt powershell的在线
  • ASPxTextBox中数据有效性设置

    1 选中ASPxTextBox控件 2 设置属性 Validationsettings中errordisplaymode requiredfield中errortext和isrequired 3 结果 4 总图
  • 100天精通Python(可视化篇)——第78天:matplotlib绘图模块基础入门大全

    文章目录 专栏导读 一 课程介绍 为什么要学习matplotlib 什么是matplotlib 二 绘制折线图 基础绘图 设置图片大小和分辨率 调整X或者Y轴上的刻度 设置中文显示 坐标轴添加描述信息 绘制网格 双折线图 添加图例 自定义绘
  • unittest使用ddt数据驱动的小demo

    一 ddt简介 1 ddt是 data driven testing的缩写 中文含义是数据驱动测试 2 ddt通常与unittest组合使用 常用的包有ddt data unpack file data 我这边使用前两种 二 ddt安装 1