一、unittest框架介紹:
unittest框架是python中的一個(gè)單元測(cè)試框架,該模塊包括許多的類如 TestCase 類、TestSuite 類、TextTestRunner 類、TestResult 類、TestLoader 類
TestCase類(測(cè)試用例):?所有測(cè)試用例的基類,它是軟件測(cè)試中最基本的組成單元;一個(gè)測(cè)試用例包含一個(gè)完成的流程,包括 setUp() 表示初始化用例,tearDown() 表示還原測(cè)試場(chǎng)景
TestSuite類(測(cè)試套件):多個(gè)測(cè)試用例 testcase 集合就是 TestSuite,在自動(dòng)化中往往一個(gè)場(chǎng)景需要編寫(xiě)一個(gè)或者多個(gè)測(cè)試用例,那么就需要把這些多個(gè)用例一起執(zhí)行,這時(shí)候需要把用例收集起來(lái),就可以通過(guò) TestSuite 來(lái)處理,可以把 TestSuite 當(dāng)成一個(gè)用例容器,而在 TestSuite 中就有 addTest() 和?addTests() 方法可以將用例添加到這個(gè)容器里面形成一個(gè)套件
TestLoader類:該類幫我們搜索所有 test 開(kāi)頭的測(cè)試用例并將搜索到的方法用 TestSuite?收集起來(lái)所以使用 unittest 框架編寫(xiě)測(cè)試用例的時(shí)候用例命名必須用 test 打
TestTextRunner類:是用來(lái)執(zhí)行測(cè)試用例的,其中的 run(test) 用來(lái)執(zhí)行,run(test) 方法不僅可以用來(lái)執(zhí)行 TestCase 還可以用來(lái)執(zhí)行 TestSuite
TestResult類:用來(lái)處理測(cè)試用例或測(cè)試集執(zhí)行過(guò)程中的所有信息并最終輸出,比如代碼錯(cuò)誤、異常、斷言失敗等等
二、unittest框架原理:
一個(gè)py文件里面有多個(gè)測(cè)試用例(testcase),通過(guò) TestLoader 方法或者?addTest() 方法加入到 TestSuite 套件容器中。然后通過(guò) TestTextRunner 方法來(lái)執(zhí)行測(cè)試用例,執(zhí)行后然后,生成的測(cè)試結(jié)果自動(dòng)保存在 TestResult 中
三、框架的作用
隨著用例的增加,我們就要考慮用例的編寫(xiě)的規(guī)范和組織,以便后續(xù)的維護(hù),同時(shí)對(duì)后續(xù)用例執(zhí)行完成生成報(bào)告的,這時(shí)我們就需要用到 unittest 框架進(jìn)行用例管理
四、框架編寫(xiě)用例的結(jié)構(gòu):后續(xù)使用框架來(lái)執(zhí)行用例,那么在用例命名時(shí)都要以test打頭如:test_case,結(jié)尾也一樣
框架中用例執(zhí)行順序:
setUpClass()? -->? setUp()? -->? testcases? -->? tearDown()? -->? tearDownClass()
setUpClass() 和?tearDownClass():類方法在整個(gè)執(zhí)行過(guò)程中只會(huì)在開(kāi)始和結(jié)束執(zhí)行一次
setUp() 和?tearDown():實(shí)例方法會(huì)在每條用例開(kāi)始和結(jié)束執(zhí)行依次
unittest 中的主函數(shù) main() 執(zhí)行用例時(shí)順序以 ascii 表的順序來(lái)執(zhí)行的: 0-9,A-Z,a-z