利用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為測試用例集,包檔案,下面放...