mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-30 21:09:36 +08:00
**Added**
- feat: implement global hooks `setup_testcase/teardown_testcase`, called before/after each testcase - feat: implement global hooks `setup_teststep/teardown_teststep`, called before/after each teststep **Changed** - remove default header `HRUN-Request-ID`, implement the same function with global hooks
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
import uuid
|
||||
from enum import Enum
|
||||
from unittest.case import SkipTest
|
||||
|
||||
@@ -72,12 +71,6 @@ 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
|
||||
else:
|
||||
self.hrun_request_id = config_variables["HRUN-Request-ID"]
|
||||
|
||||
# testcase setup hooks
|
||||
testcase_setup_hooks = config.get("setup_hooks", [])
|
||||
# testcase teardown hooks
|
||||
@@ -86,6 +79,10 @@ class Runner(object):
|
||||
self.http_client_session = http_client_session or HttpSession()
|
||||
self.session_context = SessionContext(config_variables)
|
||||
|
||||
self.session_context.update_session_variables({
|
||||
"variables": config_variables
|
||||
})
|
||||
|
||||
if testcase_setup_hooks:
|
||||
self.do_hook_actions(testcase_setup_hooks, HookTypeEnum.SETUP)
|
||||
|
||||
@@ -217,6 +214,9 @@ class Runner(object):
|
||||
parsed_test_request = self.session_context.eval_content(raw_request)
|
||||
self.session_context.update_test_variables("request", parsed_test_request)
|
||||
|
||||
test_variables.update(self.session_context.session_variables_mapping["variables"])
|
||||
self.session_context.update_test_variables("variables", test_variables)
|
||||
|
||||
# setup hooks
|
||||
setup_hooks = test_dict.get("setup_hooks", [])
|
||||
if setup_hooks:
|
||||
@@ -227,11 +227,6 @@ 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)
|
||||
|
||||
Reference in New Issue
Block a user