【selenium自动化测试入门】 python unittest单元测试框架

unittest又名PyUnit, Python单元测试框架(The Python unit testing framework),简称PyUnit。自从 Python 2.1 版本后,PyUnit成为 Python标准库的一部分。

为什么需要使用unittest单元测试框架?

当我们写的用例越来越多时,我们就需要考虑用例编写的规范、组织与管理,以便于后期的维护,而python-unittest正是这样一款工具。我们这里用一个简单示例来展示用unittest脚本是什么样子的。

创建计算器类calculator

 
  1. # Calculator.py

  2. class calculator(object):

  3. def __init__(self, a, b):

  4. self.a = a

  5. self.b = b

  6. def add(self):

  7. return (self.a + self.b)

  8. def minus(self):

  9. return (self.a - self.b)

  10. def multip(self):

  11. return (self.a * self.b)

  12. def divide(self):

  13. return (self.a / self.b)

创建一个简单的单元测试用例

 
  1. import unittest # 导入unittest 包

  2. from unittest_doc.com.Calculator.Calculator import calculator # 引入需要测试的包

  3. # 所有用例需继承TestCase类或者其子类

  4. class simple_test(unittest.TestCase):

  5. def setUp(self):

  6. print('@@@初始化test_simple@@@')

  7. self.a = calculator(1, 2)

  8. def test_add(self):

  9. print('---测试用例test_simple add---')

  10. self.assertEqual(self.a.minus(), -1, '两值不相等')

  11. self.assertEqual(self.a.add(), 3, '两值不相等')

  12. self.assertNotEqual(self.a.divide(), 1, '两值不相等')

  13. def test_divide(self):

  14. print('---测试用例test_simple divide---')

  15. self.assertEqual(self.a.divide(), 0.5)

  16. def tearDown(self):

  17. print('@@@结束test_simple@@@')

  18. if __name__ == '__main__':

  19. unittest.main()

运行结果:

 
  1. @@@初始化test_simple@@@

  2. ---测试用例test_simple add---

  3. @@@结束test_simple@@@

  4. @@@初始化test_simple@@@

  5. ---测试用例test_simple divide---

  6. @@@结束test_simple@@@

测试用例由setUp(),test_add(),test_divide(),tearDown() 4个部分组成,它们放在一个继承于unittest.TestCase 的测试类下。

仔细观察输出结果,每个用例运行前都会运行 setUp(),结束后会运行tearDown(),从这里应该能够看出他们两的作用。

setUp() 用于测试用例执行前的准备工作。
如测试用例中需要访问数据库,可以在setUp中建立数据库连接并进行初始化;用例需要使用web,可以先实例化浏览器;app测试需先要启动app,可先实例化app。

tearDown() 用于用例执行之后的善后工作。如关闭数据库连接,关闭浏览器,关闭app。当用例没运行成功是他也会执行。

test_add(),test_divide() 测试脚本,必须已test开头或者结尾,如用unittest.main()方法执行用例,需要已test开头。

一个TestCase 的实例就是一个测试用例。测试用例就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),实现测试过程的代码(run),以及测试后环境的还原(tearDown)。

单元测试(unittest)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个功能进行验证。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值