当存在多套测试环境时,通过自定义命令行参数,快速切换host
查看pytest系统命令行参数:pytest -h
1、编辑 conftest.py:
import os import pytest def pytest_addoption(parser): '''增加命令行参数 --cmdhost''' parser.addoption( "--cmdhost", action="store", # default: 默认值,命令行没有指定host时,默认用该参数值 default="http://xx.xx.xx.xx:xxxx", help="test case project host address" ) @pytest.fixture(scope="session", autouse=True) # autouse=True自动执行该前置操作 def host(request): '''获取命令行参数,给到环境变量''' os.environ["host"] = request.config.getoption("--cmdhost") print("当前用例运行测试环境:%s"%os.environ["host"])
pytest -h 查看到增加了如下自定义参数
2、执行测试代码,不带host
pytest.main(['-s', '-q', 'test_demo_16_relevance.py'])
E:personalpython38python.exe E:/personal/GitWorkSpace/pytest_basic/main.py test_demo_16_relevance.py::TestLogin::test_1[login0] test_demo_16_relevance.py::TestLogin::test_2[login0] test_demo_16_relevance.py::TestLogin::test_3 当前用例运行测试环境:http://xx.xx.xx.xx:xxxx 正在操作登录,账号:admin, 密码:123456 登录成功 F 正在操作登录,账号:admin, 密码:123456 登录成功 .. ================================== FAILURES ===================================
3、切换host
pytest.main(['-s', '-q', '--cmdhost=http://www.xxx.xxx', 'test_demo_16_relevance.py'])
E:personalpython38python.exe E:/personal/GitWorkSpace/pytest_basic/main.py test_demo_16_relevance.py::TestLogin::test_1[login0] test_demo_16_relevance.py::TestLogin::test_2[login0] test_demo_16_relevance.py::TestLogin::test_3 当前用例运行测试环境:http://www.xxx.xxx 正在操作登录,账号:admin, 密码:123456 登录成功 F 正在操作登录,账号:admin, 密码:123456 登录成功 .. ================================== FAILURES ===================================