pytest系列之 mark功能的使用

2022-09-10 03:33:13 字數 1976 閱讀 1554

功能使用:

例如:你有以下用例,檔案目錄結構如下:

testcase

----user

----management

----create

----testcase_create_001(正常場景)

----testcase_create_002(引數校驗用例)

----testcase_create_003(邏輯校驗用例)

----testcase_create_004(場景切換用例)

----testcase_create_005(等等)

----update

----testcase_update_001(正常場景)

----testcase_update_002(引數校驗用例)

----testcase_update_003(邏輯校驗用例)

----testcase_update_004(場景切換用例)

----testcase_update_005(等等)

----delete

----testcase_delete_001(正常場景)

----testcase_delete_002(引數校驗用例)

----testcase_delete_003(邏輯校驗用例)

----testcase_delete_004(場景切換用例)

----testcase_delete_005(等等)

----query

----testcase_query_001(正常場景)

----testcase_query_002(引數校驗用例)

----testcase_query_003(邏輯校驗用例)

----testcase_query_004(場景切換用例)

----testcase_query_005(等等)

----operator(等等)

現在我們要執行其中的一部分用例該怎麼辦呢?

例如有如下要求:1)只執行正常場景的用例,2)只執行異常場景的用例,3)只執行create模組的用例,4)執行所有user-management下所有用例

就可以使用pytest.mark給用例打標籤,乙個用例可以打多個標籤

針對以上問題,我們可以這樣解決:

1)將所有正常用例標記為@pytest.mark.level1

2)將所有異常用例,按照自我評定等級標記用例,分別將引數校驗用例標記為@pytest.mark.level2,將邏輯校驗用例標記為

@pytest.mark.level3,以此類推;

3)將create模組的所有用例標註為@pytest.mark.user_management_create

4)將user-management下所有用例標註為@pytest.mark.user_management

此外,我們還要註冊標籤名稱,才能使用。

官方提供的註冊方式,直接在pytest.ini檔案中宣告即可:

pytest.ini固定格式如下所示:

[pytest]

markers =

level1: mark a test as a level1.(後面是一段說明)

level2: mark a test as a level2.

level3: mark a test as a level3.

user_management: mark feature.

user_management_create: mark feature.

這樣,在執行的時候,我們在執行時,通過pytest -m 標籤名,來執行相關標籤標記的內容。

例如:執行user模組用例:pytest -m user_management

執行正常用例:pytest -m level1

pytest執行多個mark用例

import pytest pytest.mark.desktop professional pytest.mark.特性1 def test 1 print 執行了桌面專業版特性1用例 assert true pytest.mark.desktop professional pytest.mark...

pytest教程之自定義mark

實際的自動化測試專案中,我們的用例通常會放在多個py檔案中,如果我們只想執行其中部分用例,該怎麼做呢?pytest提供的mark功能能夠幫助我們解決這個問題。下面看具體做法。pytest markers you this is you me this is metest a.py中 用例 impor...

pytest九 使用自定義標記 mark

mark 標記 以下用例,標記 test send http 為 webtest v指定的函式節點id 如果想指定執行某個.py 模組下,類裡面的乙個用例,如 testclass裡面 test 開頭 或 test 結尾 的用例,函式 或方法 的名稱就是用例的節點 id,指定節點 id 執行用 v 引...