zoukankan      html  css  js  c++  java
  • pytest扫盲17--自定义命令行参数

    当存在多套测试环境时,通过自定义命令行参数,快速切换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 ===================================
  • 相关阅读:
    【整理】Dword、LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR
    C/C++中printf和C++中cout的输出格式
    左值的理解(给渴望学习的新手)
    c++ 指针精髓
    c++中的函数前面加个LRESULT是什么意思啊?
    pb调用vc写的动态链接库文件
    C++问题 & *用法
    vs2008下MFC内存泄露问题一点经验
    mysql5.6.41winx64安装
    开发是一件需要非常小心的工作
  • 原文地址:https://www.cnblogs.com/xiaohuboke/p/13564157.html
Copyright © 2011-2022 走看看