TestSuite:測試套件
可以將多個測試用例集合在一起,能一起執(zhí)行選中的測試用例
suite=unittest.TestSuite()#創(chuàng)建測試套件
case_list=[“test1”,”test2”….]
For caseincase_list:
?? suite.addTest(類名(case))
? 案例:
if__name__=='__main__':
# unittest.main
suite=unittest.TestSuite()
caseList=["test001","test002"]
forcaseincaseList:
? ? ? ? ? ? ? ? ?? suite.addTest(UnitTestTwo(case))
# 運行測試用例
runner=unittest.TextTestRunner(verbosity=2)
? ? ? ? ? ? ?? runner.run(suite)
TextRunner:執(zhí)行測試用例
runner=unittest.TextTestRunner(verbosity=2)
runner.run(suite)
verbosity:表示測試報告信息的詳細程度,一共三個值,默認是2
0(靜默模式):你只能獲得總的測試用例數(shù)和總的結(jié)果,如:總共100個失敗10成功90
1(默認模式):類似靜默模式,只是在每個成功的用例前面有個.每個失敗的用例前面有個F
2(詳細模式):測試結(jié)果會顯示每個測試用例的所有相關(guān)的信息三
三、斷言
斷言:驗證預(yù)期結(jié)果和實際結(jié)果
assertEqual(a,b):斷言a和b是否相等,相等則測試用例通過。
assertNotEqual(a,b):斷言a和b是否相等,不相等則測試用例通過。
assertTrue(x):斷言x是否True,是True則測試用例通過。
assertFalse(x):斷言x是否False,是False則測試用例通過。
assertIs(a,b):斷言a是否是b,是則測試用例通過。
assertNotIs(a,b):斷言a是否是b,不是則測試用例通過。
assertIsNone(x):斷言x是否None,是None則測試用例通過。
assertIsNotNone(x):斷言x是否None,不是None則測試用例通過。
assertIn(a,b):斷言a是否在b中,在b中則測試用例通過。
assertNotIn(a,b):斷言a是否在b中,不在b中則測試用例通過。
assertIsInstance(a,b):斷言a是是b的一個實例,是則測試用例通過。
assertNotIsInstance(a,b):斷言a是是b的一個實例,不是則測試用例通過。
四.生成測試報告
過程:先創(chuàng)建開發(fā)和測試的包→拷貝開發(fā)代碼、對開發(fā)代碼測試→將HTMLTestRunner.py拷貝到項目中→進行生成測試報告
withopen("../report.html","wb")asf:
HTMLTestRunner(
stream=f,
title="單元測試",
description="測試一期",
verbosity=2
).run(suite)
stream:指定輸出的方式
description:報告中要顯示的面熟信息
title:測試報告的標(biāo)題
verbosity :表示測試報告信息的詳細程度,一共三個值,默認是2
0 (靜默模式):你只能獲得總的測試用例數(shù)和總的結(jié)果,如:總共100個 失敗10 成功90
1 (默認模式):類似靜默模式,只是在每個成功的用例前面有個. 每個失敗的用例前面有個F
2 (詳細模式):測試結(jié)果會顯示每個測試用例的所有相關(guān)的信息
五、讀取xml文件
創(chuàng)建xml文件→在xml文件中輸入數(shù)據(jù)→讀取
讀取:
fromxml.domimportminidom
classReadxml():
defread_xml(self,filename,onename,twoname):
root=minidom.parse(filename)
firstnode=root.getElementsByTagName(onename)[0]
secondnode=firstnode.getElementsByTagName(twoname)[0].firstChild.data
returnsecondnode
r=Readxml()
print(r.read_xml('../data/xmltestdata.xml','add','add3'))
六、讀取csv文件
創(chuàng)建一個csv文件→創(chuàng)建讀csv文件的文件→進行讀取
導(dǎo)入csv文件
importcsv#導(dǎo)入csv模塊
classReadCsv():
defread_csv(self):
item=[]#定義一個空列表
c=csv.reader(open("../commonDemo/test1.csv","r"))#得到csv文件對象
forcsv_iinc:
item.append(csv_i)#將獲取的數(shù)據(jù)添加到列表中
returnitem
r=ReadCsv()
print(r.read_csv())