亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python自動化測試框架pytest和unittest的區別是什么

發布時間:2021-10-27 17:01:15 來源:億速云 閱讀:172 作者:柒染 欄目:編程語言

這篇文章給大家介紹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來實現

python自動化測試框架pytest和unittest的區別是什么

五、生成報告方式

1.unittest

通過HTMLTestRunner生成

2.pytest

(1)通過pytest-html生成html格式報告

(2)通過allure生成方案(很詳細)

關于python自動化測試框架pytest和unittest的區別是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石家庄市| 防城港市| 班玛县| 威远县| 象州县| 姚安县| 电白县| 焉耆| 盈江县| 永胜县| 宜宾县| 连江县| 花莲县| 宣恩县| 玛纳斯县| 德清县| 元阳县| 南宫市| 沂源县| 神农架林区| 西和县| 准格尔旗| 广德县| 临泉县| 遂平县| 揭东县| 海口市| 德兴市| 临沭县| 扎鲁特旗| 扎赉特旗| 怀安县| 乌兰县| 郸城县| 盱眙县| 保德县| 洛浦县| 江都市| 太仆寺旗| 贞丰县| 嵊州市|