PlayWright(十三)

2023-07-10 18:01:12

 

我們都知道,在做單元測試框架中有UnitTest和Pytest,前者是Python中自帶無需安裝,Pytest需要安裝,今天我們來講的就是Pytest,當然如果是做自動化,建議兩個都要掌握一下,可以針對實際業務靈活使用

廢話不多說,開幹!

1、環境安裝

pip insatll pytest

 

如果要解決安裝滿的問題,可以使用豆瓣源:

pip install -i https://pypi.douban.com/simple pytest

 

檢視安裝是否成功和安裝版本:

pytest --version

2、基本使用

我們使用別人的框架,就得遵守別人的規則,所以pytest也有相應的規則:

1:用例檔案:所有檔名為 test_ 開頭 或者 _test 開頭的檔案會被識別為用例檔案。

2:用例類,測試檔案中每個Test開頭的類就是一個測試用例類。並且不能帶有 init 方法

3、測試用例:測試類中每個test開頭的方法就是一條測試用例,測試檔案中每個test開頭的函數也是一條測試用例

 

通俗來說,就是不管是檔名,類名或者函數名命名必須是test的

不理解沒問題,直接來實戰

 

1、以函數形式編寫用例

# 函數形式
def test_demo():  # 要求函數名以 test 開頭
    """測試函數"""
    print('我是函數形式的pytest,我可以是一條用例哦')

我們來執行一下:

用例成功通過

那我們是怎麼執行的呢

右鍵執行或者右上角執行都可以,如果結果報錯,檢查一下pycham中預設測試選的是哪個

選擇對應的pytest即可,我這裡自動檢測了pytest,所以無需設定

 

還可以怎麼執行呢

以命令列的形式執行:

直接進入到當前專案下,輸入pytest,就可以自動執行了

這裡我們得再補充下:

在pytest後加 -v 或者 -s,分別有不同的含義

  • -v:顯示測試的詳細引數資訊
  • -s:顯示測試執行的輸出資訊

我們以其中一個範例:

除了函數形式編寫,還有類的形式編寫,下邊我們以類的形式編寫用例

2、以類形式編寫用例

# 測試類形式
class TestDemo(object):  # 正常定義類, 但是測試類名必須以 Test 開頭
    """測試範例類"""

    def test_01(self):  # 正常定義⽅法, 但是測試⽅法名必須以test開頭
        print('我是測試類下的方法1')

    def test_02(self):
        print('我是測試類下的方法2')

這個遵循我們的規則第二條,測試類以Test開頭

當然我們再次執行發現兩條用例都已執行成功,現在我們都是自己執行的,難道pytest就沒有一套執行方式嗎?當然有的,pytest有一個main方法也是可以執行程式碼檔案的

if __name__ == '__main__':
    pytest.main(['-s', 'test01.py'])

這個我們簡單分析一下,就是這是main主函數入口,呼叫了pytest的main方法,方法裡引數放在一個列表裡

其他的我們需要什麼引數就往裡填就可以了

 

到了這裡,基本使用我們就講完了,實際看完感覺是不是也就那樣,我們總結下,本篇講的pytest環境安裝,pytest基本規則,pytest函數和類的使用,main函數執行方式

 

還有前置、後置、組態檔、引數化(資料驅動)、斷言、重試機制、外掛報告,不要著急慢慢來