diff --git a/httprunner/runner.py b/httprunner/runner.py index f6ea0eb7..9e90303e 100644 --- a/httprunner/runner.py +++ b/httprunner/runner.py @@ -1,5 +1,4 @@ -# encoding: utf-8 - +import uuid from enum import Enum from unittest.case import SkipTest @@ -73,6 +72,10 @@ class Runner(object): self.export = config.get("export") or config.get("output", []) config_variables = config.get("variables", {}) + self.hrun_request_id = str(uuid.uuid4()) + if "HRUN-Request-ID" not in config_variables: + config_variables["HRUN-Request-ID"] = self.hrun_request_id + # testcase setup hooks testcase_setup_hooks = config.get("setup_hooks", []) # testcase teardown hooks @@ -222,6 +225,11 @@ class Runner(object): base_url = self.session_context.eval_content(test_dict.get("base_url", "")) parsed_url = utils.build_url(base_url, url) + request_headers = parsed_test_request.setdefault("headers", {}) + if "HRUN-Request-ID" not in request_headers: + parsed_test_request["headers"]["HRUN-Request-ID"] = \ + self.session_context.session_variables_mapping["HRUN-Request-ID"] + try: method = parsed_test_request.pop('method') parsed_test_request.setdefault("verify", self.verify)