From d08642f812791851cbc0522e3fb66ec90377ec3c Mon Sep 17 00:00:00 2001 From: debugtalk Date: Mon, 26 Nov 2018 14:26:30 +0800 Subject: [PATCH] fix html report display response content --- httprunner/client.py | 30 ++++++++++++++--------- httprunner/templates/report_template.html | 8 +++--- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/httprunner/client.py b/httprunner/client.py index c62d12aa..e1798db9 100644 --- a/httprunner/client.py +++ b/httprunner/client.py @@ -138,20 +138,26 @@ class HttpSession(requests.Session): self.meta_data["response"]["headers"] = dict(response.headers) self.meta_data["response"]["cookies"] = response.cookies or {} self.meta_data["response"]["encoding"] = response.encoding - self.meta_data["response"]["content_type"] = response.headers.get("Content-Type", "") - try: - # try to only record json data - self.meta_data["response"]["json"] = response.json() - except ValueError: - # only record at most 1000 text charactors - resp_text = response.text - resp_text_length = len(resp_text) - if resp_text_length > 1000: - resp_text = resp_text[0:1000] \ - + " ... OMITTED {} CHARACTORS ...".format(resp_text_length-1000) + content_type = response.headers.get("Content-Type", "") + self.meta_data["response"]["content_type"] = content_type - self.meta_data["response"]["text"] = resp_text + if "image" in content_type: + # response is image type, record bytes content only + self.meta_data["response"]["content"] = response.content + else: + try: + # try to record json data + self.meta_data["response"]["json"] = response.json() + except ValueError: + # only record at most 1000 text charactors + resp_text = response.text + resp_text_length = len(resp_text) + if resp_text_length > 1000: + resp_text = resp_text[0:1000] \ + + " ... OMITTED {} CHARACTORS ...".format(resp_text_length-1000) + + self.meta_data["response"]["text"] = resp_text # get the length of the content, but if the argument stream is set to True, we take # the size from the content-length header, in order to not trigger fetching of the body diff --git a/httprunner/templates/report_template.html b/httprunner/templates/report_template.html index 7cca19cb..8b68a425 100644 --- a/httprunner/templates/report_template.html +++ b/httprunner/templates/report_template.html @@ -272,7 +272,7 @@
{% for key, value in record.meta_data.response.items() %} - {% if key in ["text", "json", "elapsed_ms", "response_time_ms", "content_size", "content_type"] %} + {% if key in ["elapsed_ms", "response_time_ms", "content_size", "content_type"] %} {% continue %} {% endif %} @@ -288,10 +288,12 @@ {% if "image" in record.meta_data.response.content_type %} {% else %} -
{{ record.meta_data.response.text | e }}
+ {{ value }} {% endif %} + {% elif key == "text" %} +
{{ record.meta_data.response.text | e }}
{% else %} - {{value}} + {{ value }} {% endif %}