ini配置文件可用于多环境切换、公共参数配置。
这里使用configparser读取配置,因为在获取bool值配置项时不需要额外处理。使用iniconfig需要做额外处理。
- 配置项统一写在了pytest.ini文件中
[global_config]
is_test = fALse
other_config_opt = "xxx"
[TEST_SERVER]
base_url = http://127.0.0.1:8010/api.php
sql_url = http://127.0.0.1:8010/
[ONLINE_SERVER]
base_url = http://www.baidu.com
sql_url = http://www.bing.com
- 加载配置封装。ini_util.py
def load_global_config():
parser = configparser.ConfigParser()
# 所有配置都写在了pytest.ini文件
parser.read("./pytest.ini") # 如果当前工作目录不是项目根目录,这边路径自己处理成绝对路径
# 获取[global_config]这个section
global_config_section = parser.__getitem__("global_config")
test_server_section = parser.__getitem__("TEST_SERVER")
online_server_section = parser.__getitem__("ONLINE_SERVER")
# 获取is_test配置项
is_test = global_config_section.getboolean(option="is_test")
base_url = test_server_section.get("base_url") if is_test else online_server_section.get("base_url")
sql_url = test_server_section.get("sql_url") if is_test else online_server_section.get("sql_url")
global_config = {
"is_test": is_test,
"base_url": base_url,
"sql_url": sql_url
}
return global_config
# 所有的配置项
global_conf = load_global_config()
- 使用配置项
from commons.ini_util import global_conf
base_url = global_conf["base_url"]
print(f'{base_url = }')