python 接口自动化测试框架-unittest框架的基本使用
一、unittest简单介绍
1、import unittest
2、定义一个继承自unittesu.TestCase的测试用例类
3、定义SetUp和TearDown,在每个测试用例前后做一些辅助工作
4、定义测试用例,名字以test开头
5、一个测试用例应只测试一方面,测试目的和测试内容应很明确,主要调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符
6、调用unittest.main()启动测试
7、如果测试没有通过,会输出响应的错误提示,如果测试全部通过则不显示任何东西,也可添加-V参数显示详细信息
二、unittest的基本使用
import unittest #导入unittest模块
class testCase(unittest.TestCase): #创建单元测试类,继承unittest.TestCase
#setUp
'''
1、用于每个测试用例执行前的初始化工作
2、所有类中方法的入参为self,定义实例变量也要self变量
'''
def setUp(self):
print("case执行前")
#tearDown
'''
每个测试用例执行后的都会执行此方法
'''
def tearDown(self):
print("case执行后")
#setUpClass
'''
1、每个单元测试类运行前调用该方法,只会执行一次
2、属于类方法,需要加上装饰器@classmethod
3、默认入参为cls,指的就是‘类对象’本身,其实和self没什么区别,用法一致
'''
@classmethod
def setUpClass(cls):
print("对象执行前")
#tearDownClass
'''
1、每个单元测试类运行后调用该方法,只执行一次
2、属于类方法,需要加上装饰器@calssmethod
'''
@classmethod
def tearDownClass(cls):
print("对象执行后")
def test_1(self):
print("test1")
def test_2(self):
print("test2")
if __name__ == '__main__':
#unittest.main()
'''
1、运行单元测试
2、该命令会搜索当前module下所有以test开头的测试用例,并运行他们
3、执行顺序是按照case的命令
'''
unittest.main()
执行后的效果
三、unittest模块的常用方法
1、assertEqual(a,b) a == b
2、assertNotEqual(a,b) a != b
3、assertTrue(x) bool(x) is True
4、assertFalse(x) bool(x) is False
5、assertIs(a,b) a is b
6、assertIsNot(a,b) a is not b
7、assertIsNone(x) x is None
8、assertIsNotNone(x) x is not None
9、assertIn(a,b) a in b
10、assertNotIn(a,b) a not in b
11、assertIsInstance(a,b) isinstance(a,b)
12、assertNotIsInstance(a,b) not isinstance(a,b)
四、unittest测试用例跳过执行
import unittest
import sys
class testCase(unittest.TestCase):
#直接跳过
'''跳过测试用例,reason为测试被跳过的原因'''
@unittest.skip("直接跳过")
def test_skip(self):
self.fail("不会被执行")
#满足condition则跳过
'''当condition为真时,跳过测试用例'''
@unittest.skipIf(1 < 2,"满足condition则跳过")
def test_skipIf(self):
print("skip If")
#不满足condition则跳过
'''跳过测试用例,除非condition为真'''
@unittest.skipUnless(sys.platform.startswith("win"), "需要window平台才不会跳过")
def test_skipUnless(self):
print("skip Unless")
#预期该测试用例会测试失败
'''把测试用例标记为预计失败;如果测试不通过,会被认为测试城管;如果测试通过了,则被认为测测试失败'''
@unittest.expectedFailure
def test_fail(self):
self.assertEqual(1,0,"broken")
#方法体内跳出不执行case
def test_maybe_skipped(self):
if True:
'''在方法体内满足某些条件下才跳过执行该测试用例'''
self.skipTest("调用unittest的skipTest,在方法体内满足某些条件则跳过该case")
pass
if __name__ == '__main__':
unittest.main()
上一篇: Unittest框架的使用方法
推荐阅读
-
python 接口自动化测试框架-unittest框架的基本使用
-
python unittest框架的使用&解析
-
Python单元测试框架之unittest+requests+ddt+excel接口自动化测试
-
python unittest 极简自动化测试框架:二、 BeautifulReport的使用简解,生成漂亮的报告
-
Python框架unittest如何做自动化测试?
-
Android App开发的自动化测试框架UI Automator使用教程
-
Android App开发的自动化测试框架UI Automator使用教程
-
基于Python的接口测试框架实例
-
Python pytest+allure的接口自动化测试框架
-
基于Python的接口测试框架实例