测试女巫之Python Unit Test篇

发表于:2017-2-24 09:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:王平平    来源:51Testing软件测试网原创

  前言:
  截止到目前对于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)删除本函数
  "添加调用执行函数的相关的代码
  需要测试几个功能就添加几个执行函数,这个执行函数可以理解为单元测试用例。
   ... ...
   查看全文内容,请点击下载http://www.51testing.com/html/15/n-3715215.html
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号