专栏名称: 51Testing软件测试网
51Testing软件测试网,人气最旺的软件测试技术门户,提供软件测试社区交流,软件测试博客,人才服务,测试沙龙,测试杂志,测试资料下载等全方位信息服务,是国内最专业的软件测试就业培训、企业服务供应商...
目录
相关文章推荐
51好读  ›  专栏  ›  51Testing软件测试网

测试女巫之Python Unit Test篇

51Testing软件测试网  · 公众号  · 测试  · 2017-02-27 17:30

正文


前言:

截止到目前对于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测试天地》原创测试文章系列(四十四)

推荐阅读

点击阅读☞ 测试女巫-自动化实践篇







请到「今天看啥」查看全文