python自動化測試框架pytest和unittest區別!!!
一、用例設計規則
1.unittest
(1)測試類必須繼承unittest.TestCase
(2)測試函式必須以”test_”開頭
(3)測試類必須有unittest.main()方法
2.pytest
(1)測試檔案的檔名必須以”test_”開頭,或者以”_test”結尾
(2)測試類命名必須以”Test”開頭
(3)測試函式名必須以”test”開頭
(4)測試類裡面不能使用”__init__”方法
總結:pytest是基於unittest衍生出來的新的測試框架,使用起來相對於unittest來說更簡單、效率來說更高,pytest相容unittest測試用例,但是反過來unittest不相容pytest,所以說pytest的容錯性更好一些!在使用互動邏輯上面pytest比unittest更全一些!
unittest是python自帶的測試庫,自我感覺的話,如果對python只是瞭解基礎知識,學unittest框架相對於來說要好理解些,unittest框架也完全可以實現市場上大部分的業務測試!建議可以先了解下unittest框架,然後在學pytest框架,可以更好的去感受一下兩個框架的優缺點
二、斷言對比
1.unittest 斷言
assertEqual(a, b) # 判斷a和b是否相等
assertNotEqual(a, b) # 判斷a不等於b
assertTrue(a) # 判斷a是否為Ture
assertFalse(a) #判斷a是否為False
assertIn(a, b) # a 包含在b裡面
asserNotIn(a, b) # a 不包含在b裡面
……
2.pytest 斷言
pytest只需要用assert 來斷言就行,assert 後面加需要斷言的條件就可以了,例如:assert a = = b # 判斷a是否等於b、
assert a != b # 判斷a不等於b、assert a in b # 判斷b包含a
總結:從斷言上面來看,pytest的斷言比unittest要簡單些,unittest斷言需要記很多斷言格式,pytest只有assert一個表示式,用起來比較方便
三、用例前置和後置
1.unittest前置和後置
(1)透過setup每個用例執行前執行,teardown每個用例執行後執行
(2)透過setupclass類裡面所有用例執行前執行,teardownclass類裡面所有用例執行後執行
2.pytest前置和後置
(1)模組級別:setup_module/teardown_module,整個.py全部用例開始前執行/全部用例執行完後執行
(2)函式級別:setup_function/teardown_function,只對函式級別生效,每個用例開始前和結束後執行一次
(3)類級別:setup_class/teardown_function,只對類級別生效,類裡面所有用例開始前執行一次,所有用例執行完執行一次
(4)方法級別:setup_method/teardown_method,只是類裡面方法級別生效,方法開始前執行一致,方法結束後執行一次
(5)方法級別:setup/teardown,這個與setup_method/teardown_method用法很類似,但是級別比method級別要低,也就是說在同一個方法中會先執行setup_method再執行setup,方法結束後先執行teardown再執行teardown_method
pytest自定義設定前置和後置:
透過firture可以自定義pytest的前置和後置,格式fixture(scope=”function”, params=None, autouse=False, ids=None, name=Noe)
scope:有四個級別,function(預設),class,module,session
params:引數列表
autouse:False為預設值,意思代表需要根據設定的條件(scope級別)來啟用fixture,如果為Ture,則表示所有function級別的都被啟用fixture
ids:每個字串id的列表,感覺沒啥實質性作用
name:fixture的名字
四、引數化
1.unittest引數化
可以透過nose_parameterized來實現,格式:@nose_parameterized.parameterized.expand(data), ‘data’為list格式的引數化的資料
2.pytest引數化
透過裝飾器@pytest.mark.parametrize來實現
五、生成報告方式
1.unittest
透過HTMLTestRunner生成
2.pytest
(1)透過pytest-html生成html格式報告
(2)透過allure生成方案(很詳細)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2653306/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python 自動化測試框架unittestPython框架
- Python自動化測試框架-pytestPython框架
- 自動化冒煙測試 Unittest , Pytest 哪家強?
- 【自動化測試框架】pytest和unitttest你知道多少?區別在哪?該用哪個?框架
- 基於Python的介面自動化-unittest測試框架和ddt資料驅動Python框架
- Python + requests + unittest + ddt 進行介面自動化測試的框架Python框架
- python介面自動化測試 —— unittest框架suite、runner詳細使用Python框架UI
- 軟體測試培訓教程:pytest與unittest區別
- pytest_BDD + allure 自動化測試框架框架
- Python 自動化測試 必會模組 UnittestPython
- 【python介面自動化】初識unittest框架Python框架
- python 自動化測試 (一):安裝 requests,unittest,HTMLTestRunnerPythonHTML
- 肖sir__介面測試之python+rquest+unittest分層自動化框架Python框架
- 記錄python介面自動化測試--unittest框架基本應用(第二目)Python框架
- python自動化框架pytest隨筆Python框架
- python+appium+pytest做app自動化測試PythonAPP
- python測試框架-pytestPython框架
- 小白剛接觸 python+pytest 自動化測試Python
- 自動化裝置測試與自動化測試的區別
- Python自動化測試框架介紹Python框架
- 一篇文章帶你瞭解Python常用自動化測試框架——PytestPython框架
- Python+Pytest+Allure+Jenkins 介面自動化框架PythonJenkins框架
- Unittest單元測試框架——BeautifulReport測試報告和Yagmail自動傳送郵件框架測試報告AI
- Python單元測試框架pytest常用測試報告型別Python框架測試報告型別
- python+pytest介面自動化(1)-介面測試基礎Python
- 功能測試、自動化測試、效能測試的區別
- 記錄python介面自動化測試--利用unittest生成測試報告(第四目)Python測試報告
- 自動化測試框架框架
- Python+Pytest+Allure+Git+Jenkins介面自動化框架PythonGitJenkins框架
- 基於Pytest豆瓣自動化測試【1】
- Python自動化測試框架有哪些?Python入門!Python框架
- 四.unittest介面自動化框架介紹框架
- Java自動化測試框架有哪幾類、區別是什麼?Java框架
- python+pytest介面自動化之測試函式、測試類/測試方法的封裝Python函式封裝
- python+pytest介面自動化(11)-測試函式、測試類/測試方法的封裝Python函式封裝
- 自動化測試與軟體測試有什麼區別?Python入門教程Python
- 【必看】Python自動化測試框架,Python入門知識!Python框架
- 自動化測試 —— Pytest fixture及conftest詳解