此篇文章詳細介紹了python的單元測試卷架構pytest,原文中根據實例編碼推薦的十分詳盡。對大家學習培訓和工作具有很強的參照參考意義,需要的小伙伴可以必須
pytest是python語言表達中一個強悍的單元測試卷架構,用于管理方法和管理功能測試,可運用在單元測試卷、功能測試工作上。
unittest也是python語言表達中一個單元測試卷架構,可是作用比較有限,沒有pytest靈便。
如同:蘋果公司電腦macair和macpro相同。全是具有相同的作用,可是實用,和更佳用。
文中包括以下幾種具體內容點:
1)pytest的簡易實例
2)pytest的組裝
3)pytest的特點、與unittest的差別。
4)pytest怎樣自動檢索測試用例。
5)pytest架構中,測試用例的運轉次序。
1)pytest寫用例很簡單
下面是一個簡單的例子:
import random def test_demo(): assert 7==random.randint(0,10)
運行結果如下:
=============================test session starts============================= platform win32--Python 3.7.2,pytest-4.6.3,py-1.8.0,pluggy-0.12.0 rootdir:D:Pychram-WorkspaceSTUDY_PYTEST plugins:allure-pytest-2.6.5,html-1.21.1,metadata-1.8.0,rerunfailures-7.0collected 1 item simple.py F simple.py:10(test_demo) 7!=6 Expected:6 Actual:7 ==========================1 failed in 0.14 seconds===========================
2)pytest的安裝
安裝命令:
pip install pytest
3)pytest的特征、與unittest的區別。
pytest的特征如下:
3.1自動識別測試用例。(unittest當中,需要引入TestSuite,主動加載測試用例。)
3.2簡單的斷言表達:assert表達式即可。(unittest當中,self.assert*)
3.3有測試會話、測試模塊、測試類、測試函數級別的fixture。(unittest當中是測試類、測試函數級別的fixture)
3.4有非常豐富的插件,目前在600+,比如allure插件。(unittest無)
3.5測試用例不需要封裝在測試類當中。(unittest中需要自定義類并繼承TestCase)
那么pytest是如何自動識別測試用例的呢?我們在編寫pytest用例的時候,需要遵守哪些規則呢?
4)pytest如何自動識別用例
識別規則如下:
1、搜索根目錄:默認從當前目錄中搜集測試用例,即在哪個目錄下運行pytest命令,則從哪個目錄當中搜索;
2、搜索規則:
1)搜索文件:符合命名規則test_*.py或者*_test.py的文件
2)在滿足1)的文件中識別用例的規則:
2.1)以test_開頭的函數名;
2.2)以Test開頭的測試類(沒有__init__函數)當中,以test_開頭的函數
示例:在D:pycharm_workspace目錄下,創建一個python工程,名為study_pytest。在工程下,創建一個python包,包名為TestCases。
在包當中,創建一個測試用例文件:test_sample_1.py。文件內容如下:
#!/usr/bin/ #!/usr/bin/python3 #-*-coding:utf-8-*- #定義py文件下的測試用例 def test_sample(): print("我是測試用例!") class TestSample: def test_ss(self): print("我也是測試用例!") def hello_pytest(self): print("hi,pytest,我不是用例哦!!")
按照上面定義的搜索規則,需要跳轉到工程目錄,然后再執行命令:pytest-v。執行結果如下:
讓我們愉快的加進來第2個測試文件:test_sample_2.py,內容如下:
#!/usr/bin/python3 #-*-coding:utf-8-*- def add(a,*args): sum=a for item in args: sum+=item return sum def test_add_two_number(): assert 33==add(11,22) assert 55.55==add(22.22,33.33) def test_add_three_number(): python3 #-*-coding:utf-8-*- #定義py文件下的測試用例 def test_sample(): print("我是測試用例!") class TestSample: def test_ss(self): print("我也是測試用例!") def hello_pytest(self): print("hi,pytest,我不是用例哦!!")
按照上面定義的搜索規則,需要跳轉到工程目錄,然后再執行命令:pytest-v。執行結果如下:
讓我們愉快的加進來第2個測試文件:test_sample_2.py,內容如下:
#!/usr/bin/python3 #-*-coding:utf-8-*- def add(a,*args): sum=a for item in args: sum+=item return sum def test_add_two_number(): assert 33==add(11,22) assert 55.55==add(22.22,33.33) def test_add_three_number(): assert 101==add(10,90,1)
再次運行命令:pytest-v得到如下結果:
通過多個用例文件的執行,可以看出用例的執行順序。
5)pytest中用例的執行順序
原則:先搜索到的py文件中的用例,先執行。在同一py文件當中,按照代碼順序,先搜索到的用例先執行。
綜上所述,這篇文章就給大家介紹到這里了,希望可以給各位讀者帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128735.html
本文關鍵闡述了python+pytest自動化技術測試函數測試類測試標準的封裝形式,文章內容緊扣主題開展詳盡的基本介紹,具有很強的實用價值,務必的朋友可以學習一下 序言 那么今天,我想跟大家聊聊python+pytest接口自動化里將編碼開展封裝形式,只有把測試程序開展封裝形式,才會被測試框架鑒別實行。 例如單獨插口要求編碼如下所示: importrequests headers=...
摘要:協議學習常見請求方法學習和學習接口的基本概念接口文檔認識接口測試用例編寫接口測試工具使用軟件測試自動化進階性能測試性能測試的技術要求很高,不僅僅要對性能測試的指標測試分類測試設計有很深刻的理解。 ...
摘要:前端自動化測試百度搜索功能實戰可以與結合生成測試報告。以網頁版本的百度為例,百度首頁呈現的功能新聞網頁貼吧知道音樂圖片視頻地圖等,我們以百度網頁的搜索功能為例,使用結合自動化測試框架,完成一個搜索功能的測試。 ...
原文中詳細的講解了Pytest架構之fixture,原文中根據實例編碼推薦的十分詳盡。對大家學習培訓和工作具有很強的參閱參考意義,需用的小伙伴可以參考一下 原文中有關fixture的具體內容如下所示: 1、參數化設計fixture 2、fixture工廠 3、request這一fixture 1、參數化設計fixture fixture有個params主要參數,容許大家傳送數據。 ...
小編寫這篇文章的一個主要目的,主要是給大家介紹Python Pytest工具的介紹,主要是用來做測試報告工具用的,涵蓋的測試報告工具還是比較的多的,比如會使用到ALLure工具,具體怎么使用呢?下面就給大家詳細介紹下。 簡介 Allure Framework是一種靈活的、輕量級、多語言測試報告工具。 不僅可以以簡潔的網絡報告形式非常簡潔地顯示已測試的內容, 而且還允許參與開發過程的每個...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02