• 接口自动化测试:利用环境变量管理测试环境的切换


    #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放到项目根目录下,则整个项目都可以引用该环境变量
  • 相关阅读:
    java内存管理之内存模型
    HTTP协议
    12 数值的整数次方
    11 二进制中1的个数+二进制补充知识点
    10 矩形覆盖
    9 变态跳台阶
    8 跳台阶
    7斐波那契数列
    6旋转数组的最小数字
    5用两个栈实现队列
  • 原文地址:https://www.cnblogs.com/canghai1024/p/13789297.html
Copyright © 2020-2023  润新知