前言:
截止到目前对于Python我们已经介绍了Pywinauto,Pymouse,Pykeyboard,Selenium这些模块,在博为峰网校我也录制了专门的课程进行了深入的讲解,根据此模块的学习我们可以实现自动化控制运行在Windows上的应用程序、可以自动化控制Browser上的控件,可以控制鼠标和键盘。但是如何根据我们目前学习的这些模块,针对我们的待测物如何搭建整个测试系统呢?进而如何产生外观漂亮,清晰明朗的测试报告呢?
这次我们学习的就是这方面的知识,可以帮我们搭建测试框架的模块是Python自带的一个模块:Unittest,即Unit test Framework就可以搭建这个框架。
还会接触到一个模块HTMLTestRunner,这个模块会帮助我们产出外观漂亮且清晰明朗的测试报告,且不需要学习各种函数,直接调用这个模块即可。
这次Unittest相对于之前学习的模块例如Selenium或者Pywinauto,最大的特点
是没有很多的函数需要学习,因为这个模块只是帮助我们建立测试框架,同样HTMLTestRunner也不需要了解其中的函数,只需要知道如何调用这个模块即可,且调用模块的方法其实是非常简单的!
所以大家一起启动学习模式,一起为改变枯燥的工作努力吧!
第一阶段:工作需求
学习必须要有理由,我们如何也要有充足的工作需求才能说服老板。
所以对于Unittest的"工作需求",女巫总结如下:
1、对一些复杂工作的自动化,需要规划自动化测试的架构,我们通过学习UnitTest这个模块可以帮助我们快速建立框架清晰,科学的自动化测试架构
2、我们在完成测试后,希望有一个看起来"高大上"的报告,但是又希望我们不要写太多太复杂的代码,HTMLTestRunner这个模块可以帮助我们实现这个需求
所以基于上述两个需求,我们可以进行接下来的Unittest以及HTMLTestRunner的学习。
第二阶段:unittest基本知识
1、unittest的作用
unittest支持测试自动化,它是一个测试类来完成对整个软件模块的、测试,它的对象的初始化工作可以在setUp()方法中完成,而资源的释放则可以在tearDown()方法中完成,它是将test case收集起来一起执行,而产生的报告是针对每个test Case对立产生的格式。
2、unittest官网
https://docs.python.org/2/library/unittest.html
注意:unittest此模块是Python自带的模块,所以不需要另外安装第三方模块。
3、unittest的重要概念
1) Test fixture(测试治具)
表明一些准备工作需要执行一个或者更多的测试用例,和一些需要清除的动作,它是一个概念,使用TestCase,setUp和tearDown这些方法来对于测试治具进行初始化,建立测试用例,以及清除。
所以测试治具是被构建的,它是由setup方法,TestCase组件以及tearDown方法组成的。
2) Test case
Test case是测试的最小单元。根据特殊的一系列的输入产生特定的回应。Unittest提供一个基本的类:Test case可以用来创建新的test cases.
3) Test suite(测试集)
Test suit是test case的集合,它可以用来整合test cases,使其可以一起进行执行测试。
4) Test runner
Test runner是执行测试以及提供测试结果给用户的一个组件,它可以使用图形接口,文字接口或者返回一个特殊值来说明执行测试的结果。
4、具体常用类以及函数介绍说明
1) Test Case类以及常用函数
a. TestCase官网说明
进入官网点击左边树形结构的"Classes and Functions"第一个类需要学习的就是TestCase类,其中我们用的最多的是setUp()以及tearDown(),此两个函数没有任何input,只要在其中加入user自己定义的函数即可。在这两个函数之间加入用户自己定义的函数,这样就建立了自己的test fixture。
b. TestCase源代码地址:
C:\Python27\Lib\unittest\case.py
c. TestCase类的作用
主要是建立我们需要测试的若干单元测试用例,也可称为若干个执行函数
d. 框架如下:
"setUp的处理(3种方式)
a)测试前的准备工作,可以添加恢复出厂值或者测试前需要设置的参数
b)直接写pass
c)删除本函数
"tearDown的处理(3种方式)
a)测试后的清除工作
b)直接写pass
c)删除本函数
"添加调用执行函数的相关的代码
需要测试几个功能就添加几个执行函数,这个执行函数可以理解为单元测试用例。
e. 具体代码例子如下:
......
源自《51测试天地》原创测试文章系列(四十四)