學(xué)到自動(dòng)化的時(shí)候,有些同學(xué)會(huì )糾結Pytest和Unittest框架該學(xué)哪個(gè)?當然也有的人是兩個(gè)都學(xué),不過(guò)有時(shí)學(xué)得不精,只是知道分別怎么用,不了解兩個(gè)框架的區別是什么。總之,要做好自動(dòng)化測試,是有必要了解不同框架之間的差異化的。松勤軟件測試,帶大家來(lái)了解了解!
 
1
Pytest
 
圖片

 
特點(diǎn):
(1)Pytest采用了更簡(jiǎn)潔、更靈活的語(yǔ)法風(fēng)格,使用“assert”語(yǔ)句來(lái)進(jìn)行斷言。
(2)Pytest可以自動(dòng)發(fā)現并執行以“test_”開(kāi)頭的函數或以“Test”開(kāi)頭的類(lèi)中的測試方法。
(3)Pytest支持使用裝飾器來(lái)實(shí)現參數化測試,可以根據不同的參數運行同一個(gè)測試用例多次。
(4)Pytest具有豐富的插件生態(tài)系統,可以通過(guò)插件來(lái)擴展和定制測試過(guò)程。
 
優(yōu)點(diǎn):
(1)Pytest的語(yǔ)法風(fēng)格相對簡(jiǎn)潔,易于上手和學(xué)習,測試用例編寫(xiě)更加簡(jiǎn)潔直觀(guān)。
(2)Pytest具有更強大的斷言能力和豐富的插件系統,可以提供更多的擴展和定制選項。
 
缺點(diǎn):
雖然有著(zhù)上述各種便利,但是Robot Framework在創(chuàng )建自定義的HTML報告方面比較繁瑣,并且數據驅動(dòng)使用起來(lái)比較繁瑣
 
2
Unittest
 
圖片

 
特點(diǎn):
(1)unittest使用了更傳統的“assertEqual”等斷言方法。
(2)unittest需要繼承`unittest.TestCase`類(lèi),并使用特定的命名規則。
(3)需要使用“@unittest.TestCase.subTest”裝飾器來(lái)實(shí)現類(lèi)似的功能。
(4)unittest相對較少的插件可用。
 
優(yōu)點(diǎn):
unittest是Python自帶的標準庫,無(wú)需額外安裝,對于一些簡(jiǎn)單的測試場(chǎng)景,使用“unittest”可能更加方便。
 
缺點(diǎn):
(1)unittest的語(yǔ)法相對傳統,較為繁瑣,編寫(xiě)測試用例可能需要更多的代碼量。
(2)unittest的插件系統相對較少,擴展和定制能力相對較弱。
 
綜合來(lái)說(shuō),Pytest在編寫(xiě)和運行測試用例時(shí)更加簡(jiǎn)潔靈活,具有更強大的斷言能力和豐富的插件系統,適合于復雜和高級的測試場(chǎng)景。
 
而unittest是Python自帶的標準庫,對于一些簡(jiǎn)單的測試場(chǎng)景,使用unittest可能更加方便。選擇使用哪個(gè)框架取決于項目需求、個(gè)人偏好和團隊的約定。