使用操作系统变量解决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)
这样,我们只需要在传递元素,然后不需要在传递它是生产环境还是测试环境,在测试用例中简化了参数传递。
另外,由于系统环境变量是全局的,只要我们想使用,就可以随时调取,这种方法比封装为夹具的方式更加灵活。

浙公网安备 33010602011771号