pytest 测试框架切换运行环境
pytest中的conftest.py
#命令行传参addoption 在contetest.py添加命令行选项,命令行传入参数”—cmdopt“, 用例如果需要用到从命令行传入的参数,就调用cmdopt函数:
def pytest_addoption(parser):
parser.addoption("--env", action="store", default="test", help=None) #env,变量参数名;default 默认参数,如env 没有进行传值,则使用"test"
@pytest.fixture(scope='session')
def cmdopt(pytestconfig):
# 两种写法
#global parameter_data
parameter_data=(pytestconfig.getoption("--env"))
return parameter_data
# return pytestconfig.option.cmdopt
@pytest.fixture(scope='session')
def env_url(cmdopt):#读取数据源文件
url = ReadFile.read_config('$..%s'%cmdopt)# 读取yaml配置文件中数据
return url
config.yaml配置文件中数据
server:
# 本地接口服务
#dev: http://192.168.1.183:8888/api/private/v1 http://127.0.0.1:8888/api/private/v1
dev: http://192.168.1.181:8888/api/private/v1
test: http://192.168.1.181:8888/api/private/v1
prod: http://127.0.0.1:8888/api/private/v1
run.py 入口方法
#"--env=test" 传参数变量
pytest.main(['./test_caes','-vs',"--env=test","--alluredir","target/allure-results"])#pytest测试框架主程序运行
详细代码:https://blog.csdn.net/qq_42846555/article/details/126974870