天津平臺(tái)網(wǎng)站建設(shè)推薦廣告營(yíng)銷(xiāo)平臺(tái)
1. Python+request+pytest 接口自動(dòng)化測(cè)試框架入門(mén) - 簡(jiǎn)書(shū)
pytest和unittest的比較:
pytest是一個(gè)非常成熟的全功能的Python測(cè)試框架,主要有以下幾個(gè)特點(diǎn):
- 簡(jiǎn)單靈活,容易上手
- 支持參數(shù)化
- 能夠支持簡(jiǎn)單的單元測(cè)試和復(fù)雜的功能測(cè)試,還可以用來(lái)做selenium/appnium等自動(dòng)化測(cè)試、接口自動(dòng)化測(cè)試(pytest+requests)
- pytest具有很多第三方插件,并且可以自定義擴(kuò)展,比較好用的如pytest-selenium(集成selenium)、pytest-html(完美html測(cè)試報(bào)告生成)、pytest-rerunfailures(失敗case重復(fù)執(zhí)行)、pytest-xdist(多CPU分發(fā))等
- 測(cè)試用例的skip和xfail處理
- 可以很好的和jenkins集成
- report框架----allure 也支持了pytest
1. pytest更容易參數(shù)化,適用于更復(fù)雜的場(chǎng)景
1.unittest參數(shù)化
可以通過(guò)nose_parameterized來(lái)實(shí)現(xiàn),格式:@nose_parameterized.parameterized.expand(data), ‘data’為list格式的參數(shù)化的數(shù)據(jù)
2.pytest參數(shù)化
通過(guò)裝飾器@pytest.mark.parametrize來(lái)實(shí)現(xiàn)
?
?2.pytest的測(cè)試報(bào)告更詳細(xì),allure報(bào)告很詳細(xì)
1.unittest
通過(guò)HTMLTestRunner生成
2.pytest
(1)通過(guò)pytest-html生成html格式報(bào)告
(2)通過(guò)allure生成方案(很詳細(xì))
?3.pytest斷言更簡(jiǎn)潔
1.unittest 斷言
assertEqual(a, b) # 判斷a和b是否相等
assertNotEqual(a, b) # 判斷a不等于b
assertTrue(a) # 判斷a是否為T(mén)ure
assertFalse(a) #判斷a是否為False
assertIn(a, b) # a 包含在b里面
asserNotIn(a, b) # a 不包含在b里面
……
2.pytest 斷言
pytest只需要用assert 來(lái)斷言就行,assert 后面加需要斷言的條件就可以了,例如:assert a = = b # 判斷a是否等于b、
assert a != b # 判斷a不等于b、assert a in b # 判斷b包含a
總結(jié):從斷言上面來(lái)看,pytest的斷言比unittest要簡(jiǎn)單些,unittest斷言需要記很多斷言格式,pytest只有assert一個(gè)表達(dá)式,用起來(lái)比較方便
?
?