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

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

  1.一、自動發現測試模塊和測試用例;python

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

    pytest 只須要一條代碼就能夠app

  1.二、斷言使用 assert + 表達;框架

    unitest 定義了全部的 斷言方式函數

    pytest  只須要使用一個關鍵字 assert + 表達式 就能夠了,表達式爲真則斷言經過,表達式爲假則斷言失敗單元測試

  1.三、pytest 能夠設置測試會話級、模塊級、類級、函數級的 fixtures;測試

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

 

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

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

    2.二、搜索規則:進入目錄後,在按照搜索規則搜索用例

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

      2.2.二、以   test_   開頭的函數名

      2.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()

 

三、pytest - Mark(打標籤是爲了篩選測試用例:冒煙、迴歸)

   3.一、註冊標籤名

    3.1.一、註冊方式:建立  pytest.ini 文件,在文件中按以下形式添加標籤名

[pytest] markers= aaa:mao yan bbb ccc ddd # 標籤名冒號後面能夠添加註釋信息必須是英文 # 紅色字段爲固定模式,不能改變 

    3.1.二、在測試用例/ 測試類前面加上標籤:@pytest.mark.已註冊的標記名

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

    3.1.三、能夠在一個用例上打多個標籤,屢次使用:@pytest.mark.已註冊的標記名

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

    3.1.三、在給類打標籤,類裏面的函數打標籤

# 給測試類打標籤 @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.二、方式二:

    3.2.一、在測試類裏,使用如下申明(測試類下,全部用例都被打上該標籤)

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

    3.2.二、在模塊文件裏(py文件下,全部測試函數和測試類裏面的測試函數,都有會打上該標籤)

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

 

四、pytest用例執行順序

  4.一、文件名稱 按 ASCII 碼排序

  4.二、文件內部按代碼前後順序排序

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

 

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

相關文章
相關標籤/搜索