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()

在这里插入图片描述

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小志老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值