mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-30 12:59:39 +08:00
feat: config variables support parsing from function
This commit is contained in:
@@ -871,10 +871,23 @@ def __prepare_config(config, project_mapping, session_variables_set=None):
|
||||
"""
|
||||
# get config variables
|
||||
raw_config_variables = config.pop("variables", {})
|
||||
raw_config_variables_mapping = utils.ensure_mapping_format(raw_config_variables)
|
||||
|
||||
override_variables = utils.deepcopy_dict(project_mapping.get("variables", {}))
|
||||
functions = project_mapping.get("functions", {})
|
||||
|
||||
if isinstance(raw_config_variables, basestring) and function_regex_compile.match(raw_config_variables):
|
||||
# config variables are generated by calling function
|
||||
# e.g.
|
||||
# "config": {
|
||||
# "name": "basic test with httpbin",
|
||||
# "variables": "${gen_variables()}"
|
||||
# }
|
||||
raw_config_variables_mapping = parse_lazy_data(
|
||||
prepare_lazy_data(raw_config_variables, functions_mapping=functions)
|
||||
)
|
||||
else:
|
||||
raw_config_variables_mapping = utils.ensure_mapping_format(raw_config_variables)
|
||||
|
||||
# override config variables with passed in variables
|
||||
raw_config_variables_mapping.update(override_variables)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user