python环境集成整理
接口测试过程中,可能会切换测试环境,通过配置相关信息修改
设计思路:
1、 准备各个环境配置文件信息,包括http、common 、redis、db
2、创建不同环境配置信息
测试环境:env_test.yml、 预生产环境:env_prepro.yml、生产环境:env_pro.yml
3、执行run.py 通过命令行执行:注意目录 Python run.py
(备注:需要先注释掉os.system(‘allure generate ./report/data -o ./report/html --clean’))
4、环境参数读取后,将对应的配置信息写入到文件http、common 、redis、db中
使用Python 外部获取参数方法来执行
import os
import sys
import pytest
from common.file_load import load_yaml_file, write_yaml
if __name__ == '__main__':
args = sys.argv # 返回类型 列表
print(args)
#通过命令行执行 python run.py test
# 返回['run.py', 'test'] 返回列表第一个元素文件名称,第二个元素文件参数
# 默认指向测试环境
env_file_path = r'/config/env_test.yml'
# 传递测试环境名称
if len(args)>1:
env_name = args[1]
# 路径拼接
env_file_path = f'/config/env_{env_name}.yml'
# 删除传进来的环境名称参数 可能会被当成pytest执行测试用例名称
del args[1]
# 读取配置文件信息
env_info = load_yaml_file(env_file_path)
print(env_info)
# 写入默认配置文件中 分别common db http redis
write_yaml(r'/config/common.yml',env_info['common'])
write_yaml(r'/config/db.yml', env_info['db'])
write_yaml(r'/config/http.yml', env_info['http'])
write_yaml(r'/config/redis.yml', env_info['redis'])
pytest.main()
# # 使用python执行生成测试报告的命令
os.system('allure generate ./report/data -o ./report/html --clean')
比如想执行当前测试环境文件
命令行执行:python run.py test/pro/prepro