Python接口自动化-unittest框架及原理


一、unittest 框架讲解

unittest是Python单元测试框架

二、需要掌握unittest四个概念

Testcase(测试用例):一个测试用例是一个独立的单元测试,它检查对特定输入集的特定响应。unittest提供了一个基类(TestCase),能够用他去创建新的测试用例。包括测试前准备环境的搭建(setUp),执行测试代码 (run),以及测试后环境的还原(tearDown)。元测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。

Test suite(测试套件):将单一的测试用例或者是一整个测试套件,集合到一起

Test runner(测试运行器): 执行测试用例,run会执行testsuite/testcase中run的方法

TestLoader(测试加载器):加载testcase到testloader,从文件各个地方寻找testcase,创建testcase的实例,然后add到testsuite中,再返回一个testsuite实例

Test fixture(测试夹具):夹在case入口与出口而已,即执行目标之前执行setup,执行目标之后执行teardown

三、unittest测试原理

1、定义一个要被测试的类,该测试类需要Test开头且必须继承unittest.TestCase才能成为一个测试类,才可以被unittest执行

2、定义类中的测试方法时,方法必须要test_开头,只有这样才会告诉执行器哪些方法是可执行的,也只有test_开头的才会被执行

3、执行 unittest.main() ,该函数会负责运行测试,它会实例化所有TestCase的子类,并运行其中所有以test打头的方法。

四、Testcase示例

 1 import unittest
 2 from login import login_check
 3 #定义一个要被测试的类,该测试类需要Test开头且必须继承unittest.TestCase才能成为一个测试类,才可以被unittest执行
 4 class LoginTestCase(unittest.TestCase):
 5     #测试夹具
 6     def setUp(self):
 7         print('测试开始了')
 8     def tearDown(self):
 9         print('测试结束了')
10     #定义类中的测试方法时,方法必须要test_开头,只有这样才会告诉执行器哪些方法是可执行的,也只有test_开头的才会被执行
11     def test_login(self):
12         #预期结果
13         excepted = {'code': '0000', 'massage': '账户密码正确,登陆成功'}
14         #传入参数
15         data = ('python18','123456')
16         #调用被测函数,传入参数(需要解包),获取实际结果
17         res= login_check(*data)
18         try:
19             self.assertEqual(excepted, res)  # 通过实例对象(self)来调用assertEqual()方法
20         except AssertionError as e:
21             print("该测试用例测试未通过")  # 可通过异常捕获来获取
22             raise e  # 此处需要使用raise主动抛出异常
23         else:
24             pass
25         print("该测试用例测试通过")
26 if __name__ == '__main__':
27     unittest.main()
View Code

五、Test suite示例

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM