软测从零单排day02

Unittest

unittest四大组件

Test Fixture

做测试之前的准备工作,setup,teardown,测试准备,测试清理

前置:测试执行过程中需要准备的内容叫做前置条件,setup函数实现,通过不同的等级定义实现不同前置效果

后置:测试结束之后需要进行的相关必要操作叫做后置条件,teardown函数实现。也需要与不同的前置等级进行对应

Test Case

测试用例,通过创建unitest.TestCase类的子类创建用例

unittest的语法规则与基本应用

1.所有的用例文件,都已test_开头来进行命名

2.所有的unittest必须是以class的形态编写,必须继承unitTest.TestCase类使用,类名以Test开头

3.用例执行顺序是固定

4.所有用例是否通过有三种状态

5.所有断言都是self.assert*

6.函数级别的前后置是在每一个用例执行前后分别执行的内容;类级别的前后置是在每一个类执行前后分别执行的内容

import unittest

# 必须继承TestCase类,才能让UnitTest生效
class TestUnit(unittest.TestCase):
    # 前置,测试前的准备工作,一般用于初始化
    def setUp(self):
        print('这是函数级别的前置')

    @classmethod #必须加装饰器
    def setUpClass(cls):
        cls.hgh = 'hgh帅'
        print('这是类级别的前置')

    # 后置,测试结束后的扫尾工作,一般用于释放资源
    def tearDown(self):
        print('这是函数级别的后置')

    @classmethod
    def tearDownClass(cls):
        print('这是类级别的后置')


    def test_03(self):
        print('这是03测试用例')
        assert 1==2

    def test_01(self):
        print(self.hgh)


    def test_02(self):
        a = self.plus()
        print(a)
        print('这是02测试用例')


    def plus(self):
        return 1+2

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

简单理解为Test Case的集合,主要用于对于集成管理要在一起执行的测试用例。本质就是一个list

测试套件在创建的时候,一定是通过新建一个py文件的形式来实现对suite的操作。否则suite不会生效

套件的基本应用:

1.py文件实现

2.套件按照程序顺序执行,而不是按照unittest规定顺序执行

3.通过套件可以实现多个py文件的用例

通过测试用例的名称实现对用例的添加

suite = unittest.TestSuite() #相当于创建一个空的list

# 将测试用例导入套件的方法
# #1. 通过测试用例的名称来实现对用例的添加
suite.addTest(TestUnit('test_01')) #添加unitdemo类中的test_01测试用例
suite.addTest(TestUnit('test_03'))
suite.addTest(TestUnit('test_02'))

批量添加测试用例,通过list将测试用例保存,再传入套件中

# 2.批量添加测试用例:通过list将测试用例全部的名称保存,再传入套件之中
cases = [TestUnit('test_01'),TestUnit('test_03'),TestUnit('test_02')]
suite.addTests(cases)

基于class名称实现对用例的添加:通过类名称将整个class中所有用例全部添加到套件

# 基于class名称来实现对用例的添加:通过类名称将整个class中所有的用例全部添加进入套件之中
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestUnit)) #用例的执行顺序要遵循unitest规则

基于py文件实现:将py文件所有用例添加到套件

# # 基于py文件实现对用例的添加:将py文件所有用例都添加到套件之中
cases = ['test_unit'] #如果添加的时候只输入py文件名称,则添加整个py的class,如果加了类就只添加该类
suite.addTests(unittest.TestLoader().loadTestsFromNames(cases))

通过discover方法实现

path = './'
discover = unittest.defaultTestLoader.discover(start_dir=path,pattern='test_unit')
Test Runner

主要用于协调测试的执行并提供结果输出给用户参考

# 运行套件中的测试用例:创建一个运行期,运行测试套件
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)

测试报告

'''
第三方模块生成的测试报告:
1.本质上是对一个文件的创建以及内容的导入
2.一般生成的测试报告都会是html格式的文件
3.测试报告本身会包含非常多信息,需要再创建时候补足
'''
# 配置测试报告的相关信息
report_dir = './report/'
report_file=report_dir+'report.html' #名称
report_title = '这是测试报告的标题'
report_description = '这是测试报告的详细描述信息'
report_tester = '甘文崔'
# 判断测试报告的保存路径是否存在
if not os.path.exists(report_dir):
    os.mkdir(report_dir)
# 测试报告是html文件
with open(report_file,'wb') as file:
    runner = HTMLTestReportCN.HTMLTestRunner(stream=file,tester=report_tester,title=report_title,description=report_description,verbosity=2)
    runner.run(suite)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值