zoukankan      html  css  js  c++  java
  • 接口自动化测试:利用环境变量管理测试环境的切换

    #conftest.py
    import os
    import pytest
    
    
    def pytest_addoption(parser):
        """利用钩子函数添加命令行参数"""
        parser.addoption(
            "--envhost",
            # action="append", #如果是append,则default必须为列表类型
            action='store',  # 如果是store,则default可以为任何类型
            # default=["http:localhost:8000"],
            default="127.0.0.1:8000",  # 命令行没有传入则取default,传入了则以传入的为准
            help="test case host address"
        )
    
    
    @pytest.fixture(scope="session", autouse=True)
    def env_host(request):
        """获取命令行参数,并添加到会话的环境变量中"""
        print("request.config:", type(request.config))
        # os.environ["host_address"] = request.config.getoption("--envhost")[0]
        os.environ["host_address"] = request.config.getoption("--envhost")
        print("当前的执行环境:%s" % os.environ["host_address"])

    在和conftest.py同一个包下的py文件中执行如下测试用例:

    import os
    
    def test_option():
        url = os.environ["host_address"]+ "/api/login"
        print(url)

    命令行中执行:pytest --envhost="localhost:8000" -sv

    执行结果如下,获取到了传入的参数:

    注意:

    • 只能通过命令行调用pytest才能生效
    • 只有和conftest.py在同一个package下的测试用例才能引用该环境变量
    • 基于以上两点,可以将conftest.py放到项目根目录下,则整个项目都可以引用该环境变量
  • 相关阅读:
    SparkSQL访问Hive源,MySQL源
    SparkStreaming算子操作,Output操作
    JVM 配置常用参数和常用 GC 调优策略
    SparkStreaming与Kafka,SparkStreaming接收Kafka数据的两种方式
    consul service
    Centos7 vnc
    Centos7 創建快捷方式
    Consul Session
    python consul
    python 形参
  • 原文地址:https://www.cnblogs.com/canghai1024/p/13789297.html
Copyright © 2011-2022 走看看