欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pytest框架 conftest.py文件的使用詳解

 更新時(shí)間:2022年06月02日 09:15:00   作者:測(cè)試-八戒  
conftest.py是pytest特有的本地測(cè)試配置文件,既可以用來設(shè)置項(xiàng)目級(jí)別的fixture,也可以用來導(dǎo)入外部插件,本文給大家介紹Pytest框架 conftest.py文件的使用,感興趣的朋友一起看看吧

conftest.py文件特點(diǎn)

  • 所有同目錄測(cè)試文件運(yùn)行前都會(huì)執(zhí)行conftest.py文件 不需要import導(dǎo)入
  • conftest.py,pytest用例會(huì)自動(dòng)識(shí)別該文件,放到項(xiàng)目的根目錄下就可以全局目錄調(diào)用了,如果放到某個(gè)package下,那就在該package內(nèi)有效,可有多個(gè)conftest.py
  • conftest.py與運(yùn)行的用例要在同一個(gè)pakage下,并且有__init__.py文件
  • 可以跨.py文件調(diào)用,有多個(gè).py文件調(diào)用時(shí),可讓conftest.py只調(diào)用了一次fixture,或調(diào)用多次fixture

1、conftest.py文件介紹

conftest.py文件是Pytest框架里面一個(gè)很重要的東西,它可以在這個(gè)文件里面編寫Fixture函數(shù),這個(gè)Fixture函數(shù)的作用,就相當(dāng)于Unittest框架里面的setup()前置函數(shù)和teardown()后置函數(shù),雖然Pytest框架也有setup()前置函數(shù)和teardown()后置函數(shù),但是在實(shí)際工作中沒必要寫在測(cè)試用例文件中,直接寫在conftests.py里面就好了,Pytest框架會(huì)自動(dòng)去找conftest.py文件里面的東西,這樣更靈活。
總結(jié):在實(shí)際工作中,通常conftest.py@pytest.fixture()結(jié)合使用,實(shí)現(xiàn)全局的前后置應(yīng)用。

2、conftest.py的注意事項(xiàng)

  1. conftest.py文件是單獨(dú)存放的一個(gè)夾具(Fixture)配置文件,名稱是不能更改。
  2. 可以在不同的.py文件中使用同一個(gè)Fixture函數(shù)。
  3. 原則上conftest.py需要和運(yùn)行的用例放到同一目錄中,并且有__init__.py文件,那么conftest.py作用于整個(gè)目錄。
  4. 如果希望Fixture(夾具)共享給所有測(cè)試,則可以把conftest.py文件放在測(cè)試框架的根目錄下。
  5. conftest.py文件中的內(nèi)容,不需要做任何的imprt導(dǎo)入的操作就能夠讀取到,因?yàn)镻ytest用例會(huì)自動(dòng)查找。
  6. 建議把測(cè)試項(xiàng)目的所有Fixture都存放在conftest.py文件中,把conftest.py當(dāng)作Pytest的Fixture倉(cāng)庫(kù)。

3、conftest.py的使用

(1)測(cè)試框架的根目錄或者包中創(chuàng)建conftest.py文件

"""
1.學(xué)習(xí)目標(biāo)
    掌握conftest.py文件編寫格式
2.操作步驟
    2.1 conftest.py文件名不能修改
        conftest.py文件中存放項(xiàng)目所有的fixture
        方便對(duì)fixture管理和維護(hù)
    2.2 在conftest.py定義函數(shù)
        在函數(shù)前添加@pytest.fixture()裝飾器
        在測(cè)試用例的函數(shù)中傳入fixture標(biāo)識(shí)的函數(shù)名。
提示:conftest.py文件放在項(xiàng)目的根目錄,作用域是全局的。
    conftest.py文件放在某一個(gè)包下,作用域只在該包內(nèi)。
"""
import pytest
from selenium import webdriver
@pytest.fixture()
def login():
    print("打開APP")
    print("登錄成功")
    yield  # 當(dāng)用例執(zhí)行完成后,執(zhí)行yield后的代碼
    print("關(guān)閉APP")
@pytest.fixture()
def driver(request):  # request是Pytest中的一個(gè)關(guān)鍵字,固定寫法。
    # 步驟1:創(chuàng)建瀏覽器驅(qū)動(dòng)對(duì)象
    driver = webdriver.Chrome()
    # 步驟3:定義用例執(zhí)行后要執(zhí)行的代碼,封裝到一個(gè)函數(shù)中
    def end():  # 這個(gè)end函數(shù)命是自定義的
        driver.quit()
    # 步驟4:執(zhí)行上面封裝的代碼。
    # 通過request關(guān)鍵字,結(jié)束上面的函數(shù)。
    request.addfinalizer(end)  # 終結(jié)函數(shù)
    # 步驟2:返回瀏覽器驅(qū)動(dòng)對(duì)象,給測(cè)試用例
    return driver

(2)測(cè)試用例文件如下

import pytest
# 注意:要把conftest.py文件中定義的fixture方法添加到用例中
def test_add_cart(login): # 把conftest.py文件中的fixture函數(shù)傳入用例
    print("添加購(gòu)物車--需要登錄")
def test_add_address(login):
    print("添加收貨地址--需要登錄")
if __name__ == '__main__':
    pytest.main()
"""
執(zhí)行結(jié)果:
test_01.py::test_add_cart 打開APP
登錄成功
添加購(gòu)物車--需要登錄
PASSED關(guān)閉APP
test_01.py::test_add_address 打開APP
登錄成功
添加收貨地址--需要登錄
PASSED關(guān)閉APP
"""

4、不同位置conftest.py文件的優(yōu)先級(jí)

其作用范圍是當(dāng)前目錄包括子目錄里的測(cè)試模塊。

  • 比如在測(cè)試框架的根目錄創(chuàng)建conftest.py文件,文件中的Fixture的作用范圍是所有測(cè)試模塊。
  • 比如在某個(gè)單獨(dú)的測(cè)試文件夾里創(chuàng)建conftest.py文件,文件中Fixture的作用范圍,就僅局限于該測(cè)試文件夾里的測(cè)試模塊。
  • 該測(cè)試文件夾外的測(cè)試模塊,或者該測(cè)試文件夾外的測(cè)試文件夾,是無法調(diào)用到這個(gè)conftest.py文件中的Fixture。
  • 如果測(cè)試框架的根目錄和子包中都有conftest.py文件,并且這兩個(gè)conftest.py文件中都有一個(gè)同名的Fixture,實(shí)際生效的是測(cè)試框架中子包目錄下的conftest.py文件中配置的Fixture。
  • 提示:一個(gè)用例可以添加多個(gè)conftest.py文件中定義的Fixture夾具,如下:
# 注意:要把conftest.py文件中定義的fixture方法添加到用例中
def test_add_cart(login, driver):
    print("添加購(gòu)物車--需要登錄")

5、conftest.py中Fixture(夾具)的作用域

Fixture的scope參數(shù)也適用conftest.py文件中Fixture的特性:

  • conftest.py文件中Fixture的scope參數(shù)為session,那么所有的測(cè)試文件執(zhí)行前(后)執(zhí)行一次conftest.py文件中的Fixture。
  • conftest.py文件中Fixture的scope參數(shù)為module,那么每一個(gè)測(cè)試文件執(zhí)行前(后)都會(huì)執(zhí)行一次conftest.py文件中Fixture。
  • conftest.py文件中Fixture的scope參數(shù)為class,那么每一個(gè)測(cè)試文件中的測(cè)試類執(zhí)行前(后)都會(huì)執(zhí)行一次conftest.py文件中Fixture。
  • conftest.py文件中Fixture的scope參數(shù)為function,那么所有文件的測(cè)試用例執(zhí)行前(后)都會(huì)執(zhí)行一次conftest.py文件中Fixture。

6、總結(jié):

  • Pytest框架中的setup()/teardown()函數(shù),setup_class()/teardown_class()函數(shù)。他們是作用于所有用例或者所有類的。
  • @pytest.fixtrue()的作用域是既可以部分用例,也可以全部用例的前后置。
  • conftest.py文件和@pytest.fxtrue()裝飾器結(jié)合使用,作用于全局用例的前后置。

到此這篇關(guān)于Pytest框架 conftest.py文件的使用詳解的文章就介紹到這了,更多相關(guān)Pytest conftest.py文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?OpenCV?Canny邊緣檢測(cè)算法的原理實(shí)現(xiàn)詳解

    Python?OpenCV?Canny邊緣檢測(cè)算法的原理實(shí)現(xiàn)詳解

    這篇文章主要介紹了Python?OpenCV?Canny邊緣檢測(cè)算法的原理實(shí)現(xiàn)詳解,由于邊緣檢測(cè)對(duì)噪聲敏感,因此對(duì)圖像應(yīng)用高斯平滑以幫助減少噪聲,具體詳情需要的小伙伴可以參考一下
    2022-07-07
  • Python 12306搶火車票腳本

    Python 12306搶火車票腳本

    這篇文章主要為大家詳細(xì)介紹了Python 12306搶火車票腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 詳解requirements.txt的生成和安裝

    詳解requirements.txt的生成和安裝

    本文主要介紹了詳解requirements.txt的生成和安裝,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python使用定時(shí)調(diào)度任務(wù)的方式

    Python使用定時(shí)調(diào)度任務(wù)的方式

    Python 有幾種方法可以定時(shí)調(diào)度一個(gè)任務(wù),這就是我們將在本文中學(xué)習(xí)的內(nèi)容。接下倆下邊將給大家介紹5種Python使用定時(shí)調(diào)度任務(wù)方式,需要的朋友可以參考下面文章內(nèi)容吧
    2021-09-09
  • selenium自動(dòng)化測(cè)試入門實(shí)戰(zhàn)

    selenium自動(dòng)化測(cè)試入門實(shí)戰(zhàn)

    這篇文章主要介紹了selenium自動(dòng)化測(cè)試入門實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python使用指定端口進(jìn)行http請(qǐng)求的例子

    Python使用指定端口進(jìn)行http請(qǐng)求的例子

    今天小編就為大家分享一篇Python使用指定端口進(jìn)行http請(qǐng)求的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Django csrf 驗(yàn)證問題的實(shí)現(xiàn)

    Django csrf 驗(yàn)證問題的實(shí)現(xiàn)

    csrf是通過偽裝來自受信任用戶的請(qǐng)求來利用受信任的網(wǎng)站。這篇文章主要介紹了Django csrf 驗(yàn)證問題的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • python進(jìn)程管理工具supervisor的安裝與使用教程

    python進(jìn)程管理工具supervisor的安裝與使用教程

    supervisor是用python寫的一個(gè)進(jìn)程管理工具,用來啟動(dòng),重啟,關(guān)閉進(jìn)程。下面這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)的進(jìn)程管理工具supervisor的安裝與使用的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • Python數(shù)據(jù)展示之生成表格圖片

    Python數(shù)據(jù)展示之生成表格圖片

    這篇文章主要介紹了Python數(shù)據(jù)展示之生成表格圖片,文章基于Python庫(kù)的相關(guān)資料展開對(duì)主題的詳細(xì)介紹,具有一定的參考價(jià)值需要的小伙伴可以參考一下
    2022-04-04
  • Python設(shè)計(jì)模式編程中Adapter適配器模式的使用實(shí)例

    Python設(shè)計(jì)模式編程中Adapter適配器模式的使用實(shí)例

    這篇文章主要介紹了Python設(shè)計(jì)模式編程中Adapter適配器模式的使用實(shí)例,一般來說適配器模式可以細(xì)分為類適配器和對(duì)象適配器模式,需要的朋友可以參考下
    2016-03-03

最新評(píng)論