diff --git a/examples/postman_echo/request_methods/request_with_variables.yml b/examples/postman_echo/request_methods/request_with_variables.yml index 625e240f..b5d19cc2 100644 --- a/examples/postman_echo/request_methods/request_with_variables.yml +++ b/examples/postman_echo/request_methods/request_with_variables.yml @@ -1,7 +1,6 @@ config: name: "request methods testcase with variables" - variables: - foo1: session_bar1 + variables: ${get_variables()} base_url: "https://postman-echo.com" verify: False diff --git a/httprunner/ext/make/__init__.py b/httprunner/ext/make/__init__.py index b9fac1de..9b5d437b 100644 --- a/httprunner/ext/make/__init__.py +++ b/httprunner/ext/make/__init__.py @@ -84,6 +84,15 @@ def make_testcase(testcase: Dict) -> Union[str, None]: testcase_python_path, name_in_title_case = convert_testcase_path(testcase_path) config = testcase["config"] + + config.setdefault("variables", {}) + if isinstance(config["variables"], Text): + # get variables by function, e.g. ${get_variables()} + project_meta = load_project_meta(testcase_path) + config["variables"] = parse_data( + config["variables"], {}, project_meta.functions + ) + config["path"] = testcase_python_path data = { "testcase_path": testcase_path,