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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章