pytest如何切換多套測試環境


大部分公司都有多套測試環境,sit/uat...。自動化用例如何做到多套測試環境自由切換執行

方法1、注冊命令行參數,通過命令行參數來指定測試環境

  pytest中有一個request的內置fixture,具有可選的param屬性,為請求的對象提供請求上下文的訪問權。在conftest.py文件中寫一個hook函數,通過addoption來注冊一個新的命令行參數host

addoption里面的參數。parser.addoption('命令行參數', default='默認執行環境', help='幫助信息')。action參數默認為'store'

import pytest


def pytest_addoption(parser):
    # 注冊命令行參數
    parser.addoption(
        "--host", action='store', default='https://baidu.com/', help='環境切換 switch environment'
    )


@pytest.fixture(scope='function')
def host(request):
    # 通過request.config來獲取host信息
    h = request.config.getoption('--host')
    return h

--測試:

  當在終端運行時指定了host的時候,用例里面會默認運行指定的host地址

pytest test_aa.py --host='https://cnblogs.com' -s

    當在終端運行沒有指定host地址的時候,用例執行使用默認地址

  該方法的解決思路:在conftest里面注冊新的命令行參數,再寫一個fixture,通過request.config.getoption('獲取新增的命令行參數'),再return。能實現有多套測試環境的時候,指定host地址即可切換。

方法2、通過安裝pytest-base-url插件,使用pytest.ini配置文件來實現

pip install pytest-base-url

該插件實際就是一個內置的base_url fixture。通過新建pytest.ini文件,配置base_url即可實現環境切換

 --測試:

  方法2,只需要安裝pytest-base-url插件,新建pytest.ini文件。在里面聲明base_url地址,右擊run即可

 當環境地址發生改變后,直接改pytest.ini的base_url地址即可

 

 

 

 

 

 

 


免責聲明!

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



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