pytest學習筆記04-用例執行順序及分組執行


用例執行順序

首先我們看一看用例的執行順序

unitest:ascll的大小決定執行的順序
pytest:默認按照從上到下進行執行 
如果我們想要改變用例的執行順序能夠怎么做呢?
這里介紹一個裝飾器@pytest.mark.run(order=x),它的作用就是標記該函數作為第x個執行。上代碼看看對比
沒用裝飾器的時候:
import pytest


class TestLogin:
def test_08(self):
print("你好08")

def test_01(self):
print("你好01")

def test_05(self):
print("你好05")

def test_03(self):
print("你好03")
如果是在unitest里就會先執行test_01然后依次是test_03,test_05,test_08
而在pytest里呢,我們可以看看效果

完全是按照從上到下的順序進行執行的,那么現在我們加入裝飾器試試看

import pytest


class TestLogin:
def test_08(self):
print("你好08")

def test_01(self):
print("你好01")

@pytest.mark.run(order=1)
def test_05(self):
print("你好05")

@pytest.mark.run(order=2)
def test_03(self):
print("你好03")

 

 可以看到這里的順序就已經變了,按照我標記的進行執行

分組執行用例

在工作中有的時候我們並不需要執行所有用例,所以就會用到分組執行啦。

這里同樣也要用到裝飾器@pytest.mark

我們可以在上一節講到的pytest.ini中進行分組的設置也就是

makers =                    #設置用例的分組
    smoke
    usermanage
這個設置的作用就是標記用例進行分組
還是上面的代碼,如果我不做標記,那么每次執行就會運行全部運行,那么我現在加入標記看看效果
import pytest


class TestLogin:
def test_08(self):
print("你好08")

def test_01(self):
print("你好01")

@pytest.mark.run(order=1)
def test_05(self):
print("你好05")

@pytest.mark.run(order=2)
@pytest.mark.smoke
def test_03(self):
print("你好03")
這里需要注意,運行的時候不可以再輸入pytest了哦,需要輸入pytest -m '分組名'

 

我們可以看到這里就只執行了我們所標記的用例,可以看到這里的提示,執行了一條用例,過濾了7條用例。

還有就是多個分組用例運行需要用or進行連接,比如我現在使用兩個分組

import pytest


class TestLogin:
def test_08(self):
print("你好08")

def test_01(self):
print("你好01")

@pytest.mark.run(order=1)
@pytest.mark.usermanage
def test_05(self):
print("你好05")

@pytest.mark.run(order=2)
@pytest.mark.smoke
def test_03(self):
print("你好03")

那么我現在有兩個分組,我想執行這兩個分組就需要在終端輸入pytest -m "smoke or usermanage",來看看效果

 

 這樣就OK啦,如果說有三個分組,那就再加一個or就好了。


免責聲明!

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



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