前言:
现在同学们对“pytest html报告”大概比较关注,我们都需要知道一些“pytest html报告”的相关资讯。那么小编在网摘上汇集了一些有关“pytest html报告””的相关知识,希望同学们能喜欢,兄弟们一起来了解一下吧!单元测试的概念
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,要根据实际情况去判定其具体含义。一个单元可能是功能模块、类、方法(函数)等。
单元测试工具
不同的编程语言都有比较成熟的单元测试框架,语法规则有些差别,其核心思想都是相通的。常见的单
元测试框架有:
Java语言:Junit、TestNG
Python语言:UnitTest、Pytest
UnitTest单元测试框架
一、UnitTest框架介绍
UnitTest是Python自带的一个单元测试框架,用它来做单元测试。也经常应用到UI自动化测试和接口自
动化测试中,用来管理和维护测试用例脚本
使用UnitTest框架的好处:
1. 能够组织多个用例去执行(可以把多条测试用例封装成一个测试套件,实现批量执行测试用例)
2. 提供了丰富的断言方法,方便对用例执行的结果进行判断
3. 能够生成HTML格式的测试报告
4. 使用Fixture功能可以减少代码的冗余
UnitTest核心要素:
TestCaseTestSuiteTestRunnerTestLoader二、TestCase
TestCase就是表示测试用例
案例
定义一个实现加法操作的函数,并对该函数进行测试
如何定义测试用例
1.导包:importunittest
2.定义测试类:新建测试类必须继承unittest.TestCase
3.定义测试方法:测试方法名称命名必须以test开头
示例代码:
如何执行测试用例
方式一:使用pycharm在代码上点击鼠标右键,选择使用UnitTest运行
方式二:调用unittest.main()来运行
三、TestSuite
说明:(翻译:测试套件)多条测试用例集合在一起,就是一个TestSuite使用:
实例化:suite=unittest.TestSuite() (suite:为TestSuite实例化的名称)添加用例:suite.addTest(ClassName("MethodName"))(ClassName:为类名;MethodName:为方法名)添加扩展:suite.addTest(unittest.makeSuite(ClassName))(搜索指定ClassName内test开头的方法并添加到测试套件中)提示:TestSuite需要配合TestRunner才能被执行四、TextTestRunner
说明:TextTestRunner是用来执行测试用例和测试套件的使用:
1.实例化:runner=unittest.TextTestRunner()
2.执行:runner.run(suite)#suite:为测试套件名称
示例代码:
五、Fixture
说明:Fixture是一个概述,对一个测试用例环境的初始化和销毁就是一个Fixture
Fixture控制级别:
方法级别使用:
类级别使用:
模块级别【了解】使用:
示例代码使用:
六、UnitTest 断言
什么是断言
概念:让程序代替人为判断测试程序执行结果是否符合预期结果的过程UnitTest 中提供了非常丰富的断言方法,但是常用的也就那么几个,并且使用起来也比较简单。
使用方式:
断言方法经在unittest.TestCase 类中定义好了,而且我们自定义的测试类已经继承了 TestCase ,所以在测试方法中直接调用即可。
七、UnitT est 参数化通过参数的方式来传递数据,从而实现数据和脚本分离,也可以把测试数据定义到数据文件或者数据库中。针对同一个测试方法,可以实现用例的重复执行,减少代码冗余,提高测试效率。unittest测试框架,本身不支持参数化,但是可以通过安装 unittest 扩展插件rameterized 来实现。
安装parameterized
pip install parameterized
parameterized 使用方式
导包:from par ameterized import par ameterized使用@par ameterized.e xpand 装饰器可以为测试函数的参数进行参数化示例代码
示例代码
八、生成HTML 测试报告
测试脚本执行完后,可以生成以 HTML( 网页 ) 格式的测试报告
为什么要生成测试报告:
测试报告是本次测试结果的体现形态测试报告内包含了有关本次测试用例的详情
使用HTML TestRunner 生成测试报告
使用方法:
示例代码: