diff --git a/httprunner/locusts.py b/httprunner/locusts.py index 25ec95fa..28e58403 100644 --- a/httprunner/locusts.py +++ b/httprunner/locusts.py @@ -40,6 +40,7 @@ def gen_locustfile(testcase_file_path): "templates", "locustfile_template" ) + TestcaseLoader.load_test_dependencies() testset = TestcaseLoader.load_test_file(testcase_file_path) host = testset.get("config", {}).get("request", {}).get("base_url", "") diff --git a/httprunner/response.py b/httprunner/response.py index 34e42073..d00a397c 100644 --- a/httprunner/response.py +++ b/httprunner/response.py @@ -6,6 +6,7 @@ import re from httprunner import exception, logger, testcase, utils from httprunner.compat import OrderedDict, basestring from requests.structures import CaseInsensitiveDict +from requests.models import PreparedRequest text_extractor_regexp_compile = re.compile(r".*\(.*\).*") @@ -95,7 +96,11 @@ class ResponseObject(object): # TODO: remove compatibility for content, text if isinstance(top_query_content, bytes): top_query_content = top_query_content.decode("utf-8") - top_query_content = json.loads(top_query_content) + + if isinstance(top_query_content, PreparedRequest): + top_query_content = top_query_content.__dict__ + else: + top_query_content = json.loads(top_query_content) except json.decoder.JSONDecodeError: err_msg = u"Failed to extract data with delimiter!\n" err_msg += u"response content: {}\n".format(self.content) diff --git a/httprunner/runner.py b/httprunner/runner.py index 72dd7a4d..00919d12 100644 --- a/httprunner/runner.py +++ b/httprunner/runner.py @@ -178,7 +178,7 @@ class Runner(object): extractors = testcase_dict.get("extract", []) or testcase_dict.get("extractors", []) extracted_variables_mapping = resp_obj.extract_response(extractors) self.context.bind_extracted_variables(extracted_variables_mapping) - + # validate validators = testcase_dict.get("validate", []) or testcase_dict.get("validators", []) try: