爱站内页反链 爱站首页反链 神马是否收录 360网站安全检测 搜狗是否收录 360是否收录 百度是否收录 百度年收录 网站年龄 百度安全 百度查询 导出链接 网站ip查询 网站ICP备案批量查询 搜狗快照 百度快照 百度反链批量查询 搜狗PR批量查询 谷歌PR批量查询 神马权重批量查询 360移动权重批量查询 站长移动权重批量查询 爱站移动权重批量查询 360权重查询 站长PC权重批量查询 爱站PC权重批量查询 搜狗总收录批量查询 360日收录批量查询 360总收录批量查询 百度月收录批量查询 百度周收录批量查询 百度日收录批量查询 百度网站收录批量查询 获取网站IP 获取网站描述 获取网站关键词 获取网站标题 HTTP状态码 搜狗权重 搜狗反链 神马总收录 百度预计流量 ALEXA排名 360反链

当前位置 博文首页 > Python接口自动化系列之unittest结合ddt的使用教程详解

最大化 缩小

    Python接口自动化系列之unittest结合ddt的使用教程详解

    作者:那你多喝点水 时间:2021-07-21 18:47

    前面一篇我们已经把unittest的常用用法都已经讲过了,可能很多小伙伴有个疑问,unittest框架怎么做数据驱动呢?这节我们就来学习一下。
    1、unittest 没有自带数据驱动功能。
    所以如果使用unittest,同时又想使用数据驱动,那么就可以使用DDT来完成。
    DDT是 “Data-Driven Tests”的缩写。
    资料:http://ddt.readthedocs.io/en/latest/
    2、什么是ddt?
    测试步骤相同,代码一样,测试数据不同,当我们输入一组测试数据的时候,测试框架会自动生成独立的多个测试用例的方法,这就是ddt。(个人理解)
    注意:ddt不等于数据驱动,ddt只是实现了数据驱动思想

    首先,我们需要下载包,下载方法如下:

    在这里插入图片描述

    然后,我们开始学习

    import unittest
    import ddt
    # 首先我们导入ddt
    
    # 我们还是哪官网这个加法方法来做例子,首先我们准备一些测试数据
    
    data = [(1,2,3),
        (1,3,4),
        (1,4,5)]
    
    # 装饰类,也就是继承自TestCase的类,可以理解为给这个类戴了个帽子
    @ddt.ddt
    class IntegerArithmeticTestCase(unittest.TestCase):
      # 装饰测试方法。参数是一系列的值
      # 注意要加这个*,多组数据,@ddt.data(*data)相当于@ddt.data((1,2,3),(1,3,4),(1,4,5))
      @ddt.data(*data)
      # 每次运行都会从 data中取出一组数据,动态生成一个独立的测试用例方法
      def testAdd(self,test_data):
        print(test_data)
        self.assertEqual((test_data[0] + test_data[1]), test_data[2])
    '''
    测试用例方法名生成规则
    使用ddt后,会产生一个新的测试用例方法名:之前的测试用例方法名_ordinal_data
    之前的测试用例方法名:即定义的测试用例方法名。比如def test_large(),这里就是test_large
    ordinal:整数,从1开始递加。
    data:如果传递过来的数据存在__name__属性,则这里就是该数据的__name__值。如果未定义__name__属性,ddt会尽量将传递过来的数据转化为python标识符,作为data显示。比如(3,2)就转化为3_2。
    需要注意的是,如果数据是字典,则这里就是字典的key。
    '''
    if __name__ == '__main__':
      unittest.main(verbosity=2)

    我么执行看一下结果:

    在这里插入图片描述

    在看一下HTML的结果报告:

    在这里插入图片描述

    3、下面我们就说一下在实际框架中ddt是如何使用的
    实际框架中只不过测试数据不是放在代码里,代码要做数据分离,实际是把数据放在Excel,或者yaml,或者json文件中,等等吧,作者实际框架中用的最多的都是这三种。
    1)我么你先看一下测试数据放在json中,先建一个json文件

    在这里插入图片描述

    import unittest
    import ddt
    
    
    # 装饰类,也就是继承自TestCase的类,可以理解为给这个类戴了个帽子
    @ddt.ddt
    class IntegerArithmeticTestCase(unittest.TestCase):
      # 装饰测试方法。参数是文件名。文件可以是json 或者 yaml类型。
      # 注意,如果文件以”.yml”或者”.yaml”结尾,ddt会作为yaml类型处理,其他所有文件都会作为json文件处理。
      # 如果文件中是列表,每个列表的值会作为测试用例参数,同时作为测试用例方法名后缀显示。
      # 如果文件中是字典,字典的key会作为测试用例方法的后缀显示,字典的值会作为测试用例参数
      @ddt.file_data('d1.json')
      @ddt.unpack
      # 每次运行都会从 data中取出一组数据,动态生成一个独立的测试用例方法
      def testAdd(self,first,second,values):
        self.assertEqual( (first+ second), values)
    
    if __name__ == '__main__':
      unittest.main(verbosity=2)

    执行查看结果如下:

    在这里插入图片描述

    2)我么你在看一下测试数据放在yaml中,先建一个yaml文件

    jsjbwy
    上一篇: Python项目实战之使用Django框架实现支付宝付款功能
    下一篇:没有了
  • 立即下载 - IIS7 站长工具包
    最新 更多<<
  • Python接口自动化系列之unittest结合ddt的使用教程详解
  • Python项目实战之使用Django框架实现支付宝付款功能
  • python编写扎金花小程序的实例代码
  • python单例模式的应用场景实例讲解
  • 学点简单的Django之第一个Django程序的实现
  • Python制作运行进度条的实现效果(代码运行不无聊)
  • Django中的DateTimeField和DateField实现
  • Django如何重置migration的几种情景
  • 一文读懂python Scrapy爬虫框架
  • Django与AJAX实现网页动态数据显示的示例代码
  • python自动生成sql语句的脚本
  • 详解pandas apply 并行处理的几种方法
  • Python的Tqdm模块实现进度条配置
  • pandas map(),apply(),applymap()区别解析
  • pandas apply使用多列计算生成新的列实现示例
  • matplotlib bar()实现多组数据并列柱状图通用简便创建方法
  • matplotlib bar()实现百分比堆积柱状图
  • matplotlib之属性组合包(cycler)的使用
  • matplotlib部件之套索Lasso的使用
  • matplotlib之多边形选区(PolygonSelector)的使用
  • matplotlib 范围选区(SpanSelector)的使用
  • python爬取分析超级大乐透历史开奖数据第1/2页
  • 用pip给python安装matplotlib库的详细教程
  • Python爬取你好李焕英豆瓣短评生成词云的示例代码
  • python连接手机自动搜集蚂蚁森林能量的实现代码
  • Matplotlib animation模块实现动态图
  • python中if嵌套命令实例讲解
  • Python 图片处理库exifread详解
  • Django和Ueditor自定义存储上传文件的文件名
  • 如何用 Python 制作一个迷宫游戏
    推荐 更多<<
  • python处理json数据中的中文
  • 爱我的人你现在死哪去了 - 渴望爱情的女生好听的个性签名
  • 白菜园:终于可以愉快的撸Java异步代码了!

PHP网站源码永湖网站优化吉祥网络广告推广广州网站搜索优化大浪模板网站建设大芬优化大鹏企业网站建设观澜优化光明网站推广盐田网页制作福永网站搭建深圳网站优化按天扣费南澳百度爱采购宝安企业网站改版丹竹头网站建设设计龙华seo网站优化坂田建设网站双龙百度关键词包年推广沙井网络推广大运SEO按天计费福田关键词按天计费惠州优化西乡百姓网标王推广布吉推广网站坪山网站优化软件坪山网站优化按天收费沙井百度竞价包年推广盐田企业网站设计丹竹头网站优化按天扣费盐田百度竞价南山网络推广歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化