unittest載入自動化測試用例的幾種方式

2021-10-20 18:47:09 字數 3780 閱讀 4000

利用python進行測試時,測試用例的載入方式有2種:

一種是通過unittest.main()來啟動所需測試的測試模組;

一種是新增到testsuite集合中再載入所有的被測試物件,而testsuit裡存放的就是所需測試的用例,下面分別列出3種方法的具體使用方式:

import unittest 

class uctestcase(unittest.testcase):

def setup(self):

#測試前需執行的操作

.....

def teardown(self):

#測試用例執行完後所需執行的操作

.....

# 測試用例1

def testcreatefolder(self):

#具體的測試指令碼

......

# 測試用例2

def testdeletefolder(self):

#具體的測試指令碼

......

if __name__ == "__main__":

unittest.main()

import unittest 

# 執行測試的類

class uctestcase(unittest.testcase):

def setup(self):

#測試前需執行的操作

.....

def teardown(self):

#測試用例執行完後所需執行的操作

.....

# 測試用例1

def testcreatefolder(self):

#具體的測試指令碼

......

# 測試用例2

def testdeletefolder(self):

#具體的測試指令碼

......

if __name__ == "__main__":

# 構造測試集

suite = unittest.testsuite()

suite.addtest(uc7testcase("testcreatefolder"))

suite.addtest(uc7testcase("testdeletefolder"))

# 執行測試

runner = unittest.texttestrunner()

runner.run(suite)

import unittest 

class testcase1(unittest.testcase):

#def setup(self):

#def teardown(self):

def testcase1(self):

print 'aaa'

def testcase2(self):

print 'bbb'

class testcase2(unittest.testcase):

#def setup(self):

#def teardown(self):

def testcase1(self):

print 'aaa1'

def testcase2(self):

print 'bbb1'

if __name__ == "__main__":

#此用法可以同時測試多個類

suite1 = unittest.testloader().loadtestsfromtestcase(testcase1)

suite2 = unittest.testloader().loadtestsfromtestcase(testcase2)

suite = unittest.testsuite([suite1, suite2])

unittest.texttestrunner(verbosity=2).run(suite)

下面針對上述指令碼中應用到的unittest模組下的幾個成員進行簡單的介紹,以便於理解上述**:

testcase:所有測試用例的基本類,給乙個測試方法的名字,就會返回乙個測試用例例項;

testsuit:組織測試用例的例項,支援測試用例的新增和刪除,最終將傳遞給 testrunner進行測試執行;

texttestrunner:進行測試用例執行的例項,其中text的意思是以文字形式顯示測試結果。測試的結果會儲存到texttestresult例項中,包括執行了多少測試用例,成功了多少,失敗了多少等資訊;

testloader:用來載入testcase到testsuite中的,其中有幾個 loadtestsfrom__()方法,就是從各個地方尋找testcase,建立它們的例項,然後add到testsuite中,再返回乙個testsuite例項

理解幾者之間關係圖可參考鏈結

簡單專案目錄如下:

runalltest.py 如下:

# conding:utf-8

import unittest

test_dir = './test_case' #用例目錄

discover = unittest.defaulttestloader.discover(test_dir, pattern='test*.py') #載入所有的測試類並返回測試套件discover

if __name__ == '__main__':

runner = unittest.texttestrunner()

runner.run(discover) #執行測試套件discover

這樣,只需執行runalltest.py檔案,即可自動執行所有的測試用例。

首先新建檔案輸入測試用例的路徑alltestcase.txt

c:/users/admin/desktop/auto/autotest/cases/t.py
然後讀取取檔案利用testloader載入

def all_case():

# discover = unittest.defaulttestloader.discover(case_path, pattern="t.py", top_level_dir=none)

# print("測試用例集合:"+str(discover))

f2 = open(os.path.dirname(d) + "/autotest/conf/alltestcase.txt", "r")

list=

for line2 in f2:

index = line2.rfind("/")

indexpy = line2.rfind(".py")

path = line2[0:index]

name = line2[index + 1:indexpy + 3]

print("檔案列表" + path + ":" + name + ":" + str(index) + ":" + str(indexpy))

suite1 = unittest.testloader().discover(path, pattern=name, top_level_dir=none)

suite = unittest.testsuite(list)

return suite

其他操作同

python自動化測試unittest的使用

import unittest class testlogin unittest.testcase def test 01 self b 1 斷言相等 self.assertequal b,2 def test 02 self b 23 斷言是否b是不是 1234 的子串 self.asserteq...

介面自動化 unittest

unittest unittest框架會把以test 開頭的例項方法識別為用例,同時會自動執行 如果不是test 方法,那麼不會被當做測試用例執行 一 匯入unittest import unittest 系統內建模組,不需要安裝 二 定義類 classtestmulti unittest.test...

unittest自動化測試檔案目錄設計

在pycharm編輯器中,目錄建立層級為 資料夾 包 py檔案 一級目錄 project test 二級目錄 project test test case project test report 其中.project test為根目錄,可以理解為資料夾,test case為測試用例集,包檔案,下面放...