专栏首页Python自动化测试Python自动化之unittest框架

Python自动化之unittest框架

在软件架构的层面来讲,测试最重要的步骤之一是发生在软件开发的时候。而软件最终的功能是软件实现细节实现的产物。在金字塔模型的测试理论体系中,单元测试是最底层的测试,而且是测试覆盖最多的层面。在自动化所有的测试体系中,不管是单元测试,还是接口测试以及基于UI的自动化测试,都需要单元测试框架,在Python语言中,最常用的单元测试框架是unittest和pytest,今晚主要来介绍unittest单元测试框架,后期逐步的介绍pytest测试框架在自动化测试中的应用。

在Python语言中,标准库unittest模块提供了对单元测试的支持,unititest模块的主要部分,如下图所示。

在如上图中,可以看到unittest模块主要模块是测试用例,测试固件,测试套件,测试执行,测试报告,以及测试断言里面提供的方法。下面就该部分详细的做下解释:

测试用例:unittest模块提供了TestCase类,类TestCase为测试用例提供了支持。通过继承TestCase来设置一个新的测试类,和设置测试方法,每个测试方法通过实际响应结果与预期结果对比来实现单元测试。

测试固件:测试固件SetUp()和TearDown()表示一个或者多个测试以及清理工作所需要的所有设置和准备。如UI自动化测试中初始化打开浏览器和关闭浏览器,数据库测试中连接数据库与关闭数据库。

测试套件:测试套件顾名思义是测试用例的集合。当然一个测试套件也可以保护其他的测试套件,测试套件允许对在软件系统上执行功能相似的测试的测试用例进行分组。在unittest模块中通过TestSuite类提供对测试套件的支持。

测试执行:测试执行是管理和运行测试用例的对象,并向测试人员提供结果。一般性的可以在IDE中直接执行,或者在命令行中执行。

测试结果:测试结果类管理着测试结果的输出。在测试结果中,保存了成功的,失败的,和错误的,以及执行的测试用例的个数。在unittest模块中,由TestResult类来实现,它具有一个具体的,默认的TextTestResult 类实现。

下面结合一个简单的函数测试来说明unittest模块来自动化测试中的应用,源码为:

#!/usr/bin/env python
#coding:utf-8
def add(a,b):
   return a/b
import  unittest

class AddTest(unittest.TestCase):
   def test_add_001(self):
      self.assertEqual(add(4,2),2)

   def test_add_002(self):
      self.assertEqual(add(3,2),1.5)

   def test_add_003(self):
      self.assertRaises(ZeroDivisionError,add,1,0)

if __name__ == '__main__':
    unittest.main(verbosity=2)

执行如上代码后,执行的结果如下图所示。

后续公众号会持续更新关于Python语言的自动化测试知识体系,感谢您的关注。如您对我的课程感兴趣,可扫描二维码关注。

本文分享自微信公众号 - Python自动化测试(wuya-python),作者:无涯WuYa

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Selenium2+python自动化20-引入unittest框架

    from selenium import webdriver from selenium.webdriver.common.by import By from ...

    上海-悠悠
  • UI自动化unittest框架之装饰器@classmethod

    前言:unittest框架大家应该很熟悉,unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,就是我们每执行一条用例,...

    测试小兵
  • 《 python自动化框架pytest》

    首先说下为什么要学pytest,在此之前相信大家已经掌握了python里面的unittest单元测试框架,那再学一个框架肯定是需要学习时间成本的。刚开始我的内心...

    上海-悠悠
  • 自动测试框架unittest

    固件是测试所需的外部资源。TestCase包含一个特殊的hook, 用来配置和清理测试所需要的所有固件。配置固件需要覆盖setUp()方法,要完成清理,则需要覆...

    用户2936342
  • Python自动化测试框架Pytest和Unittest的区别

    总结:pytest是基于unittest衍生出来的新的测试框架,使用起来相对于unittest来说更简单、效率来说更高,pytest兼容unittest测试用例...

    测试小兵
  • Python测试框架之unittest和pytest

    目前搜狗商城接口测试框架用的是unittest+HTMLTestRunner,case数有1097条,目前运行一次自动化测试,时长约为30分钟,期望控制在10分...

    用户5521279
  • Selenium 4 Python的最佳测试框架

    随着Python语言的使用越来越流行,基于Python的测试自动化框架也越来越流行。在项目选择最佳框架时,开发人员和测试人员会有些无法下手。做出选择是应该判断很...

    FunTester
  • APP UI自动化测试思路总结

      python+appium自动化测试系列就要告一段落了,本篇博客咱们做个小结。

    小老鼠
  • 《一头扎进》系列之Python+Selenium框架设计篇2- 价值好几K的框架,不看白不看,看了还想看

      上一篇介绍了自动化框架的架构,今天宏哥就带领小伙伴或者童鞋们开始开工往这个框架里开始添砖加瓦。主要是介绍一个框架unittest单元测试框架和一种设计思想...

    北京-宏哥

扫码关注云+社区

领取腾讯云代金券