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()
结果: