軟體測試培訓教程:pytest與unittest區別
在 軟體測試培訓教程中,會講到關於pytest與unittest區別,那麼本期教程小編就為大家詳細的介紹一下pytest與unittest區別有哪些?
pytest與unittest區別:
一、用例編寫規則
1.unittest提供了testcases、testsuites、testfixtures、testrunner相關的類,讓測試更加明確、方便、可控。使用unittest編寫用例,必須遵守以下規則:
(1)測試檔案必須先importunittest
(2)測試類必須繼承unittest.TestCase
(3)測試方法必須以“test_”開頭
(4)測試類必須要有unittest.main()方法
2.pytest是python的第三方測試框架,是基於unittest的擴充套件框架,比unittest更簡潔,更高效。使用pytest編寫用例,必須遵守以下規則:
(1)測試檔名必須以“test_”開頭或者"_test"結尾(如:test_ab.py)
(2)測試方法必須以“test_”開頭。
(3)測試類命名以"Test"開頭。
總結:pytest可以執行unittest風格的測試用例,無須修改unittest用例的任何程式碼,有較好的相容性。pytest外掛豐富,比如flask外掛,可用於用例出錯重跑;還有xdist外掛,可用於裝置並行執行。
二、用例前置和後置
1.unittest提供了setUp/tearDown,每個用例執行前、結束後執行一次。setUpClass和tearDownClass,用例執行前、結束後,只執行一次。
2.pytest提供了模組級、函式級、類級、方法級的setup/teardown,比unittest的setUp/tearDown更靈活。
模組級(setup_module/teardown_module)開始於模組始末,全域性的
函式級(setup_function/teardown_function)只對函式用例生效(不在類中)
類級(setup_class/teardown_class)只在類中前後執行一次(在類中)
方法級(setup_method/teardown_method)開始於方法始末(在類中)
類裡面的(setup/teardown)執行在呼叫方法的前後
pytest還可以在函式前加@pytest.fixture()裝飾器,在測試用例中裝在fixture函式。fixture的使用範圍可以是function,module,class,session。
firture相對於setup和teardown來說有以下幾點優勢:
命名方式靈活,不侷限於setup和teardown這幾個命名
conftest.py配置裡可以實現資料共享,不需要import就能自動找到一些配置,可供多個py檔案呼叫。
scope="module"可以實現多個.py跨檔案共享前置
scope="session"以實現多個.py跨檔案使用一個session來完成多個用例
用yield來喚醒teardown的執行
三、斷言
1.unittest提供了assertEqual、assertIn、assertTrue、assertFalse。
2.pytest直接使用assert表示式。
四、報告
1.unittest使用HTMLTestRunnerNew庫。
2.pytest有pytest-HTML、allure外掛。
五、失敗重跑
1、unittest無此功能。
2、pytest支援用例執行失敗重跑,pytest-rerunfailures外掛。
六、引數化
1、unittest需依賴ddt庫。
2、pytest直接使用@pytest.mark.parametrize裝飾器。
七、用例分類執行
1、unittest預設執行全部用例,也可以透過載入testsuit,執行部分用例。
2、pytest可以透過@pytest.mark來標記類和方法,pytest.main加入引數("-m")可以只執行標記的類和方法。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996644/viewspace-2789741/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python自動化測試框架pytest和unittest區別!!!Python框架
- 軟體測試培訓分享:哪家軟體測試培訓機構好?
- 軟體測試培訓教程:軟體測試面試之怎麼測試刷抖音?面試
- 軟體測試培訓:如何搭建測試環境
- 軟體測試培訓分享:軟體測試崗位面試技巧有哪些?面試
- 軟體測試培訓分享:軟體測試自學能找到工作嗎
- 軟體測試培訓分享:軟體測試就業前景怎麼樣就業
- 軟體測試培訓分享:軟體測試和軟體開發學哪個好呢
- 自動化測試與軟體測試有什麼區別?Python入門教程Python
- 軟體測試培訓分享:軟體測試的發展空間大嗎
- 金融軟體測試前景分析,與其他軟體測試的5大區別!
- 軟體測試培訓學習哪些內容?
- 深圳軟體測試培訓:Postman的Monitor功能Postman
- 軟體測試培訓需要學習什麼
- 軟體測試培訓分享:如何劃分bug的嚴重級別
- 軟體測試培訓分享:軟體測試的職業發展方向有哪些
- 軟體測試培訓:不可不知的十大軟體測試工具
- 軟體測試培訓分享:效能測試的目的是什麼
- 軟體測試系統培訓學習要多久?
- 參加軟體測試培訓需要注意哪些
- 參加軟體測試培訓前景好不好
- 軟體測試培訓分享:Bug的作用有多大?
- 女生參加軟體測試培訓合適嗎?
- 軟體測試培訓分享:做軟體測試工作如何清楚的描述一個bug
- 軟體測試培訓分享:學習能力差可以學習軟體測試嗎
- 自動化冒煙測試 Unittest , Pytest 哪家強?
- 軟體測試培訓分享:做軟體測試需要掌握資料庫的知識嗎?資料庫
- 深圳軟體測試培訓:java中陣列的操作Java陣列
- 哪些人適合參加軟體測試培訓?
- 大專生可以參加軟體測試培訓嗎
- 軟體測試培訓適合什麼人學習?
- 哪些人適合參加軟體測試培訓
- 軟體測試培訓需要學習什麼技術
- 參加軟體測試培訓找工作有前景嗎
- 軟體測試培訓:推薦10款移動app安全測試工具APP
- 2021年還適合參加軟體測試培訓嗎
- 如何評判軟體測試培訓機構的好壞?
- 參加軟體測試培訓需要學習哪些知識