pytest框架-介紹、Mark(打標簽)、執行標簽命令運行用例、用例執行順序、


1、pytest介紹:基於unittest 之上的單元測試框架

  1.1、自動發現測試模塊和測試用例;

    unitest 需要添加用例,(泰斯特樓貸)加載器加載測試用例

    pytest 只需要一條代碼就可以

  1.2、斷言使用 assert + 表達;

    unitest 定義了所有的 斷言方式

    pytest  只需要使用一個關鍵字 assert + 表達式 就可以了,表達式為真則斷言通過,表達式為假則斷言失敗

  1.3、pytest 可以設置測試會話級、模塊級、類級、函數級的 fixtures;

  1.4、有豐富的插件庫,目前在600個以上(框架庫插件地址:http://plugincompat.herokuapp.com/)

 

2、pytest 收集測試用例規則(按照:目錄-文件-函數/類)

  2.1、默認從當前目錄中搜集測試用例,即在那個目錄下運行pytest  命令,則從那個目錄當中搜索

    2.2、搜索規則:進入目錄后,在按照搜索規則搜索用例

      2.2.1、符合命名規則    test_*.py   或者   *_test.py   的文件

      2.2.2、以   test_   開頭的函數名

      2.3.3、以 Test  開頭的測試類(沒有   _init_  函數)當中,以  test_  開頭的函數

3.執行方式

第一種:cmd  中執行  pytest 命令;先進入代碼所在文件,然后執行 pytest 命令

==========   testsession starts ========:代表會話開始

  • python3.7:代表那個平台
  • pytest-5.2.1 :代表pytest版本
  • rootdir:代表搜索用例的地址

第二種:同第一種方法:在 pycharm 控制台的   Terminal 功能,執行  pytest 命令

命令:pytest pytest -h :控制台查看命令行參數 執行標簽名 aaa 的測試用例 pytest -m 標簽名   :通過命令行 -m 過濾用例運行 例如:pytest -m aaa pytest -m 標簽名 -s -v   控制台搜索輸出詳情用例名,可以看到成功與失敗提示 例如:pytest -m aaa-s -v

實例:

  

第三種:pytest 的 main 函數 (同前兩種方法)

import pytest
if __name__ == '__main__': pytest.main()

 

3、pytest - Mark(打標簽是為了篩選測試用例:冒煙、回歸)

   3.1、注冊標簽名

    3.1.1、注冊方式:創建  pytest.ini 文件,在文件中按如下形式添加標簽名

[pytest] markers= aaa:mao yan bbb ccc ddd # 標簽名冒號后面可以添加注釋信息必須是英文 # 紅色字段為固定模式,不能改變 

    3.1.2、在測試用例/ 測試類前面加上標簽:@pytest.mark.已注冊的標記名

import pytest # 單個標記
@pytest.mark.aaa def test_aaa(): assert 100 == 100

    3.1.3、可以在一個用例上打多個標簽,多次使用:@pytest.mark.已注冊的標記名

import pytest # 多個標記
@pytest.mark.aaa @pytest.mark.ddd def test_bbb(): assert 200 == 200

    3.1.3、在給類打標簽,類里面的函數打標簽

# 給測試類打標簽
@pytest.mark.ddd class TestDemo: @pytest.mark.bbb def test_ccc(self): assert 300 == 300 @pytest.mark.ccc def test_ddd(self): assert 400 == 400

    def test_0_eee(self): assert 500 == 500

  3.2、方式二:

    3.2.1、在測試類里,使用以下申明(測試類下,所有用例都被打上該標簽)

class TestDemo: # 單個標簽
    pytestmark = pytest.mark.已注冊標簽名 # 多個標簽
    pytestmark = [pytest.mark.標簽1, pytest.mark.標簽1]

    3.2.2、在模塊文件里(py文件下,所有測試函數和測試類里面的測試函數,都有會打上該標簽)

import pytest # 單個標簽
pytestmark = pytest.mark.已注冊標簽名 # 多個標簽
pytestmark = [pytest.mark.標簽1, pytest.mark.標簽1]

 

4、pytest用例執行順序

  4.1、文件名稱 按 ASCII 碼排序

  4.2、文件內部按代碼先后順序排序

 大佬文檔:https://www.cnblogs.com/Simple-Small/p/11077123.html

 

*******請大家尊重原創,如要轉載,請注明出處:轉載自:https://www.cnblogs.com/shouhu/,謝謝!!******* 


免責聲明!

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



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