{{ record.meta_data | tojson(indent=2) | safe }}diff --git a/httprunner/client.py b/httprunner/client.py index d5b76477..a94c20e0 100644 --- a/httprunner/client.py +++ b/httprunner/client.py @@ -113,12 +113,16 @@ class HttpSession(requests.Session): self.meta_data["request_body"] = response.request.body self.meta_data["status_code"] = response.status_code self.meta_data["response_headers"] = response.headers - self.meta_data["response_content"] = response.content + + try: + self.meta_data["response_body"] = response.json() + except ValueError: + self.meta_data["response_body"] = response.content msg = "response details:\n" msg += "> status_code: {}\n".format(self.meta_data["status_code"]) msg += "> headers: {}\n".format(self.meta_data["response_headers"]) - msg += "> content: {}".format(self.meta_data["response_content"]) + msg += "> body: {}".format(self.meta_data["response_body"]) logger.log_debug(msg) # get the length of the content, but if the argument stream is set to True, we take diff --git a/httprunner/report.py b/httprunner/report.py index 870ad5ab..d8dcbb71 100644 --- a/httprunner/report.py +++ b/httprunner/report.py @@ -5,11 +5,12 @@ import os import platform import time import unittest +from collections import Iterable from datetime import datetime from httprunner import logger from httprunner.__about__ import __version__ -from httprunner.compat import basestring, bytes, numeric_types +from httprunner.compat import basestring, bytes, json, numeric_types from jinja2 import Template from requests.structures import CaseInsensitiveDict @@ -62,13 +63,13 @@ def make_json_serializable(raw_json): value = value.decode("utf-8") elif isinstance(value, CaseInsensitiveDict): value = dict(value) - elif not isinstance(value, (basestring, numeric_types)): + elif not isinstance(value, (basestring, numeric_types, Iterable)): # class instance, e.g. MultipartEncoder() value = repr(value) serializable_json[key] = value - return serializable_json + return json.dumps(serializable_json, indent=2, ensure_ascii=False) class HtmlTestResult(unittest.TextTestResult): diff --git a/httprunner/templates/default_report_template.html b/httprunner/templates/default_report_template.html index cd4413f3..d5841214 100644 --- a/httprunner/templates/default_report_template.html +++ b/httprunner/templates/default_report_template.html @@ -188,7 +188,7 @@
{{ record.meta_data | tojson(indent=2) | safe }}{{ record.meta_data | safe }}