Pytest:自定义命令行参数,实现代码切换环境执行

原文参考:pytest接口测试(九)–环境变量(自定义命令行参数)


需求描述:

公司项目上线,一般要经过三个环境的测试,例如我这边就有:开发环境、测试环境、正式环境
自动化代码一般不会变动,所以这边仅需要 手动切换运行环境 即可
于是乎我想目光投向了脚本执行方法 run.py

代码实现:

  1. 在 conftest.py 文件定义一个全局的命令行参数

    # 添加命令行参数
    def pytest_addoption(parser):
        parser.addoption(
            "--cmdhost",
            action="store",
            # default: 默认值,命令行没有指定host时,默认用该参数值
            default="http://www.baidu.com",
            help="获取当前代码执行环境"
        )
    
    # autouse=True自动执行该前置操作
    @pytest.fixture(scope="session", autouse=True)
    def host(request):
        '''获取命令行参数'''
        # 获取命令行参数给到环境变量
        os.environ["host"] = request.config.getoption("--cmdhost")
        print("当前用例运行测试环境:%s"%os.environ["host"])
        return os.environ["host"]
    
  2. 此时 host 方法可以直接作为参数全局使用

    def test_getUserInfo(self,host):
        url = host + "/api/login"
        print("测试用例url为:",url)
    
  3. 在 run.py 文件中维护测试环境的切换

    run_command = "pytest -v -s --cmdhost=https://www.4399.com .\\test_login.py"
    os.system(run_command)
    

    当指定了 --cmdhost = https://www.4399.com,此时代码运行环境 host = https://www.4399.com
    如果没有指定 --cmdhost ,此时代码运行环境为默认的:http://www.baidu.com

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值