使用操作系统变量解决ui自动化测试过程中的,环境参数切换问题 -pytest

使用操作系统变量解决ui自动化测试过程中的,环境参数切换问题 -pytest

在执行ui自动化过程中,我们有时需要切换环境,例如从测试环境切换到生产环境中执行,所以需要切换url、等。通过pytest中的强大自动化框架,能很好的解决这个问题。

1、首先设置设置需要接收的参数:

def pytest_addoption(parser):
    parser.addoption(
        "--env", action="store",
        default="TE", help="TE:测试环境,PE :现网环境,默认为测试环境"
    )


def pytest_configure(config):

    os.environ["env"] = config.getoption("--env")#通过把参数存入系统环境变量,然后需要时就可以提取

2、在需要的地方,就可以通过另一个方法提取变量

def find_config(par):
    '''根据命令行参数选择不同环境和对应url地址'''
    BASE_DIR = os.path.split(os.path.dirname(os.path.abspath(__file__)))[0]
    DATA_DIR = os.path.join(BASE_DIR, 'data')
    path = os.path.join(DATA_DIR, "env_config.yaml")
    with open(path,'rb')as f:
        try:
            data = yaml.load(f, Loader=yaml.FullLoader)
            if os.getenv("env") == "PE":
                return data['PE'][par]
            elif os.getenv("env") == "TE":
                return data['TE'][par]
            else:
                logger.error(f"可能失败的原因:1、传入的不是PE or TE ,传入的是{os.getenv('env')}")
                return '不是PE or TE 请检查日志'

        except yaml.YAMLError as exc:
            print(exc)


这样,我们只需要在传递元素,然后不需要在传递它是生产环境还是测试环境,在测试用例中简化了参数传递。

另外,由于系统环境变量是全局的,只要我们想使用,就可以随时调取,这种方法比封装为夹具的方式更加灵活。

posted @ 2021-11-04 17:49  Walker~  阅读(138)  评论(0)    收藏  举报