一、单元测试框架说明
单元测试是指在编程中,针对程序模块的最小单元(类中的方法)进行正确性检验的测试工作。python+selenium自动化测试中通常使用unittest或者pytest作为单元测试框架。而java+selenium自动化测试中通常使用junit或者testng作为单元测试框架。
二、unittest框架的4个重要概念。
(1) test fixture(测试固件):一个测试固件代表一个或多个测试执行前的准备工作和测试结束后的清理工作,例如:创建数据库连接、关闭数据库连接、启动服务进程、测试环境的清理等。
(2) test suite(测试套件):一个测试套件是一组测试用例的集合(也可以是一组测试套件的集合)。它的作用是将测试用例集合到一起一次性执行集合中所有的测试用例。
(3)test case(测试用例):一个测试用例是一个完整的测试流程,是最小的测试单元,通常会继承unittest.TestCase类。
(4)test runner(测试运行器):一个测试运行器执行设定的测试用例并将测试结果反馈给用户两部分功能组成。
三、unittest框架中的特殊方法以及特殊方法执行顺序。
(1)自动化中要求所有的测试用例都继承unittest.TestCase基类。TestCase基类中定义的几个特殊的方法如下:
setUp() 每个测试用例运行前执行,主要作用是测用例前的初始化工作。
tearDown()每个测试用例运行后执行,主要作用是测试用例后的清理工作。
setUpClass()所有测试用例运行前运行,必须使用@classmethod装饰器装饰,在setUp()方法前执行,整个测试过程只执行一次,主要作用是单元测试前的准备工作。
tearDownClass() 所有测试用例运行后运行,必须使用@classmethod装饰器装饰,在tearDown()方法后执行,整个测试过程只执行一次,主要作用是单元测试后的清理工作。
(2) 执行顺序如下:
setUpClass()
#测试用例一
setUp()
test_01()
tearDown()
#测试用例二
setUp()
test_02()
tearDown()
tearDownClass()
四、测试用例的命名。
最简单的测试用例方法命令只需要覆盖runTest()方法即可。而更可取的是测试用例以"test"开头命名。
五、unittest加载并执行测试用例方法