diff --git a/httprunner/loader.py b/httprunner/loader.py index 700f7582..d1e0d24f 100644 --- a/httprunner/loader.py +++ b/httprunner/loader.py @@ -179,7 +179,6 @@ def load_dot_env_file(dot_env_path): env_variables_mapping[variable.strip()] = value.strip() - utils.set_os_environ(env_variables_mapping) return env_variables_mapping diff --git a/httprunner/parser.py b/httprunner/parser.py index 481ddc9d..3d9f8a7d 100644 --- a/httprunner/parser.py +++ b/httprunner/parser.py @@ -618,6 +618,10 @@ def parse_tests(testcases, variables_mapping=None): } ) + env_mapping = project_mapping["env"] + # set OS environment variables + utils.set_os_environ(env_mapping) + # parse config parameters config_parameters = testcase_config.pop("parameters", []) cartesian_product_parameters_list = parse_parameters( @@ -673,4 +677,7 @@ def parse_tests(testcases, variables_mapping=None): testcase_dict["config"]["functions"] = project_mapping["debugtalk"]["functions"] parsed_testcases_list.append(testcase_dict) + # unset OS environment variables + utils.unset_os_environ(env_mapping) + return parsed_testcases_list diff --git a/httprunner/utils.py b/httprunner/utils.py index 4dbc6280..5ba9a161 100644 --- a/httprunner/utils.py +++ b/httprunner/utils.py @@ -26,7 +26,15 @@ def set_os_environ(variables_mapping): """ for variable in variables_mapping: os.environ[variable] = variables_mapping[variable] - logger.log_debug("Loaded variable: {}".format(variable)) + logger.log_debug("Set OS environment variable: {}".format(variable)) + + +def unset_os_environ(variables_mapping): + """ set variables mapping to os.environ + """ + for variable in variables_mapping: + os.environ.pop(variable) + logger.log_debug("Unset OS environment variable: {}".format(variable)) def query_json(json_content, query, delimiter='.'): diff --git a/tests/debugtalk.py b/tests/debugtalk.py index b44239de..4e22fa0f 100644 --- a/tests/debugtalk.py +++ b/tests/debugtalk.py @@ -7,7 +7,6 @@ import time from tests.api_server import HTTPBIN_SERVER, SECRET_KEY, gen_md5, get_sign BASE_URL = "http://127.0.0.1:5000" -UserName = os.environ['UserName'] demo_default_request = { diff --git a/tests/test_loader.py b/tests/test_loader.py index 104a855c..fc126873 100644 --- a/tests/test_loader.py +++ b/tests/test_loader.py @@ -565,7 +565,6 @@ class TestSuiteLoader(unittest.TestCase): path = os.path.join( os.getcwd(), 'tests/data/demo_locust.yml') locust_tests = loader.load_locust_tests(path) - self.assertEqual(locust_tests["config"]["variables"]["UserName"], "debugtalk") self.assertEqual(len(locust_tests["tests"]), 10) self.assertEqual(locust_tests["tests"][0][0]["name"], "index") self.assertEqual(locust_tests["tests"][9][0]["name"], "user-agent")