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放到项目根目录下,则整个项目都可以引用该环境变量
  • 相关阅读:
    调用Config.ini类
    winform用AForge拍照功能
    winform导出csv
    winform导出excel
    net里面using的使用
    DBNULL与null的区别
    mui app在线更新
    redux-thunk初步使用
    初步使用Web Notification 实现浏览器消息通知
    ios唤起键盘后,页面不收回导致元素错位的问题.(譬如固定在底部的自定义键盘等)
  • 原文地址:https://www.cnblogs.com/Xiaojiangzi/p/13789297.html
Copyright © 2011-2022 走看看