unittest进阶应用

unittest基本用法

python中相对比较流行的自动化测试框架UnitTest,PyUnit,在java中有一个叫做JUnit的测试框架,早期主要是用来做单元测试,随着更新,能够完整的结合selenium、appium、requests等实现ui自动化与接口自动化。

4大特点:

1、TestCase:测试用例,所有的用例都是直接继承于UnitTest.TestCase类

2、TestFixture:setUp和tearDown,,作为前置条件和后置条件

在执行用例前初始化工作,执行完用例后的资源的释放

3、TestSuite:测试套件

在做功能测试的时候会编写非常多的测试用例,在某些特定条件执行用例

TestRunner:测试运行器

测试用例放在测试套件后,调用测试运行器才能使用

4、断言:assert,在unittest中封装好了很多的成手断言,可以直接被调用

unittest环境搭建:

python安装时已经默认封装好了unittest框架,调用框架的时候只需要import即可

unittest语法规则:

1、unittest中,测试用例定义都是以test_开头

2、用例排序与写的顺序无关,排序是遵循A-Z,a-z,0-9识别:会将所有的测试用例识别,会将所有的测试用例的名字按照A-Z,a-z,0-9来排序,按照这个顺序执行

如图:

基于类的前置和后置条件@classmethod

基于用例的前置和后置条件

代码:

#导入unittest包
import unittest
classUnitDemo(unittest.TestCase):
#class前置条件了解
@classmethod
defsetUpClass(cls)->None:
print('setUpClass')
#class后置条件
@classmethod
deftearDownClass(cls)->None:
print('tearDownClass')

#前置条件
#->Noneunittest更新以后默认在调用**补全,可以去掉不影响
defsetUp(self)->None:
print('setUp')
#后置条件
deftearDown(self)->None:
print('tearDown')

#定义测试用例
deftest_1(self):
print('test_1')
deftest_2(self):
print('test_2')
if__name__=='__main__':
#运行unittest测试用例
#正常测试用例是前后关联的,如果不使用main函数调用,直接执行很可能会报错
unittest.main()

结果:

结合数据驱动@ddt一起使用

数据驱动应用_hxy的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/Lynn1111111/article/details/122582137