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: