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地址即可

 

 

 

 

 

 

 

posted @   夏大帅  阅读(1078)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示