pytest 常用方法


一、pytest 特點

  • 支持參數化
  • 支持某些測試跳過(skip)
  • 支持重復執行失敗的case
  • 支持執行部分用例
  • 方便jenkins與allure報告

二、用例執行規則

  • 只執行 pytest ,會查找當前目錄及其子目錄下以  test_*.py  或 *_test.py 文件,找到文件后,在文件中找到以  test 開頭函數並執行


三、常用方法

1、fixture 

  1)定義fixture:@pytest.fixture()

  2)調用fixture:

  • 在需要調用的函數()內把定義fixture的函數名稱當做參數傳入。 
  • @pytest.mark.usefixtures() 的括號內填入定義fixture的函數名稱

    兩者的區別,需要到reture 值時,只能使用傳參的方式。不需要到reture,兩者都可以使用。

2、skip(跳過用例)

  1)調用方法:@pytest.mark.skip()

   

 

 

3、xfail(預期失敗)

  1)調用方式:@pytest.mark.xfail() ,注:xfail(condition, reason)

  --condition 預期失敗的條件
  --reason 預期失敗的原因

  

 

 

 

4、parametrize (參數化)

  1)調用方式:@pytest.mark.parametrize () ,在括號內填入key與value。

  

 

 

 

 

5、flaky(失敗重跑)

  1)調用方式:@pytest.mark.flaky(reruns=5, reruns_delay=1) 

  

 

 

 6、pytest hook 鈎子函數(可以自定義功能或者插件)

   什么是hook 函數?

  1)通俗的說,就是根據軟件定義某些鈎子函數,當軟件命中某些行為時就會執行鈎子函數內設定好的邏輯。前提必須提供給外部使用,相當於對軟件進行監聽和修改。

  什么情況使用到hook 函數呢?

  1)在pytest  中Hook函數通常需要在conftest.py(全局生效)文件中定義。(如果不在這個文件內定義也是可以,只能局部生效)

    1、獲取pytest 執行結果@pytest.hookimpl  2、修改pytest 亂碼(參數化用例中文名稱)pytest_collection_modifyitems()。 3、提前進行異常處理,避免用例執行失敗終止測試。

    4、進行用例參數化。

四:allure 特性

 

 


免責聲明!

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



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