Unittest单元测试(六)

一、批量生成自动化的测试报告

1.txt文本格式

    unittest.TextTestRunner(verbosity=2).run(suite)

2.html格式

第一步下载HTMLTestRunner.py文件并且修改。下载教程传送门

然后放到C:\Program Files\Python37\libs目录下

if __name__ == '__main__':
    # 读取用例
    suite = unittest.defaultTestLoader.discover('./test', pattern='test_*.py')
    # 生成html空的报告文件
    now = time.strftime("%Y%m%d%H%M%S",time.localtime())
    file = open("./report/report_"+str(now)+".html","wb")
    # 初始化一个HTMLTestRunner对象
    runner = HTMLTestRunner(stream=file,title="测试报告",description="报告详情如下:")
    runner.run(suite)

二、数据驱动简介

1.为什么需要数据驱动呢?

正例,反例

登录:同一个业务逻辑,代码逻辑是不变的,数据是变化的。业务逻辑和数据分离。

三、自动化主流驱动模式介绍

1.数据驱动

数据驱动把数据保存在excel,csv,yaml,数据库。通过改变数据驱动我们的业务逻辑执行。并且得到不同的结果

2.关键字驱动

关键字驱动其实是从面向对象的思想出发,它是把一些业务逻辑代码封装成一个函数、方法,作为一个关键字,然后调用不同的函数组成不同的复杂的业务逻辑。

3.数据驱动+关键字驱动

四、unittest的ddt数据驱动

1.什么是ddt?

data driver test 它可以完美地应用于unittest框架实现数据驱动

2.ddt详解

它可以通过装饰器的方式来调用

装饰器:完成特定功能的一个函数。

在Python中有类装饰器函数装饰器

举例:

@ddt        类装饰器        作用:申明当前类使用DDT框架

@data      函数装饰器     作用:用于给测试用例传递数据

@unpack  函数装饰器     作用:将数据解包,一般用于元组和列表

@file_data函数装饰器     作用:可以读取json或者yaml文件

3.@ddt 、@data、@unpack 用法

import unittest
from ddt import ddt, data, unpack


@ddt
class TestDdt(unittest.TestCase):

    @data(("1","2"), ("3","4"))  # 函数执行次数有参数个数决定
    @unpack
    def test_01(self, args1, args2):
        print(args1, args2)

if __name__ == '__main__':
    unittest.main()

总结:

1.ddt数据驱动中,测试用例的执行次数是由@data()传参个数决定。

2.如果传的是多个元组(或列表),那么可以使用@unpack解包元组和列表,元组或者列表中有多少个值就需要多少个参数来接受值。

3.解包字典时,接受的参数名要与键名相同

 @data({"name":"test","age":"12"},{"name":"detect","age":"15"})  # 函数执行次数有参数个数决定
    @unpack
    def test_01(self, name, age):
        print(name, age)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值