pytest中常用運行用例的方式


1.首先,我們要執行用例,我們要先了解pytest中的Marker(標簽) 機制

    對於Pytest,我們可以在每一個模塊,每一個類,每一個方法和用例前都加上marker,那樣我們在pytest運行的時候就可以只運行帶有該mark標簽的模塊、類、用例。

    這樣的話可以方便我們選擇執行自動化時,是選擇執行全部用例、某個模塊用例、某個流程用例、某個單獨用例,總之就是某個單獨的標簽下所有用例。

    讓我們根據測試方向、時間、選擇調試來執行對應的marker。

2.打marker標簽的方法。

1). 注冊標簽。

   在項目目錄的下級新建一個配置文件: pytest.ini

   如圖中一樣,很簡單。前面是你標簽名稱,后面是對標簽的注釋(注釋可以不寫)

    如圖中我給項目分了smoke(冒煙)、demo(類)、login(登錄)、test(調試),之后如果有需要我會根據情況繼續增加

  

2). 打marker標簽。

打標簽方法有2種

第一種:

  @pytest.mark.標簽名

第二種:

  pytestmark = pytest.mark.標簽名

第一種打標簽的位置可以在類名前,方法前

第二種打標簽的位置可以在類中、方法中

一個類或方法可以打多個不同的標簽,標簽之間不會沖突。

上圖:

如圖,執行pytest就可以根據標簽名來執行你想執行的用例

也可以在Terminal(IDE中)、或cmd.exe中用命令來執行 pytest -m 標簽名 來運行

 

當然 -m 只代表執行的標簽名,pytest中 - 后面可以接很多命令,需要大家根據需要自己添加,

而后面 --html,--alluredir 則為運行后生成對應的HTML報告或allure報告,用於Jenkins集成。

3).打完標簽后確實方便了許多,但也還有些繁瑣。特別是調試的時候,我是在需要調試的用例方法名前面打上test標簽,

然后執行 pytest -m test ,這樣確實方便用於調試。可是有時候記性不好,調試完后忘記取消該標簽,

下一次其他用例調試前打上test標簽,會把之前未取消標簽的用例一並運行,有點糟心。

所以又搜尋了一下其他方法記錄一下: 

  1.選擇運行特定的某個類

  pytest -v test_pytest_markers.py::TestClass

  2.選擇運行特定的某個測試用例

  pytest -v test_pytest_markers.py::TestClass::test_method

  3.多種組合

  pytest -v test_pytest_markers.py::TestClass test_pytest_markers.py::test_send_http

  4.用-k進行關鍵字匹配來運行測試用例名字子串

  pytest -v -k http test_pytest_markers.py

配合-m標簽使用效果更佳哦:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM