From 20015ca10ab471d6e6bf969f8e946ffa24e89455 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Thu, 26 Jul 2018 19:14:32 +0800 Subject: [PATCH] fix #315: display image in report; remove duplicate info --- httprunner/report.py | 18 +++++-- .../templates/default_report_template.html | 9 ++-- .../templates/extent_report_template.html | 47 ++++++++++--------- 3 files changed, 44 insertions(+), 30 deletions(-) diff --git a/httprunner/report.py b/httprunner/report.py index 73381570..36229d10 100644 --- a/httprunner/report.py +++ b/httprunner/report.py @@ -102,7 +102,10 @@ def render_html_report(summary, html_report_name=None, html_report_template=None template_content = fp_r.read() report_path = os.path.join(report_dir_path, html_report_name) with io.open(report_path, 'w', encoding='utf-8') as fp_w: - rendered_content = Template(template_content).render(summary) + rendered_content = Template( + template_content, + extensions=["jinja2.ext.loopcontrols"] + ).render(summary) fp_w.write(rendered_content) logger.log_info("Generated Html report: {}".format(report_path)) @@ -110,9 +113,16 @@ def render_html_report(summary, html_report_name=None, html_report_template=None return report_path def stringify_data(meta_data, request_or_response): + """ + meta_data = { + "request": {}, + "response": {} + } + """ headers = meta_data[request_or_response]["headers"] request_or_response_dict = meta_data[request_or_response] + response_content_type = meta_data["response"]["content_type"] for key, value in request_or_response_dict.items(): @@ -125,11 +135,11 @@ def stringify_data(meta_data, request_or_response): if not encoding or encoding == "None": encoding = "utf-8" - content_type = meta_data["response"]["content_type"] - if "image" in content_type: + if request_or_response == "response" and key == "content" and "image" in response_content_type: + # display image meta_data["response"]["content_type"] = "image" value = "data:{};base64,{}".format( - content_type, + response_content_type, b64encode(value).decode(encoding) ) else: diff --git a/httprunner/templates/default_report_template.html b/httprunner/templates/default_report_template.html index 78d36986..29215db7 100644 --- a/httprunner/templates/default_report_template.html +++ b/httprunner/templates/default_report_template.html @@ -272,6 +272,9 @@
{% for key, value in record.meta_data.response.items() %} + {% if key in ["content", "json", "elapsed_ms", "response_time_ms", "content_size", "content_type"] %} + {% continue %} + {% endif %} - - - - + {% if key in ["content", "json", "elapsed_ms", "response_time_ms", "content_size", "content_type", "status_code"] %} + {% continue %} {% endif %} + + + + + {% endfor %}
{{key}} @@ -281,11 +284,11 @@ {{ header_key }}: {{ header_value }} {% endfor %} - {% elif key == "content_type" %} + {% elif key == "text" %} {% if value == "image" %} - + {% else %} -
{{ record.meta_data.response.body }}
+
{{ record.meta_data.response.text }}
{% endif %} {% else %} {{value}} diff --git a/httprunner/templates/extent_report_template.html b/httprunner/templates/extent_report_template.html index 6f563722..248d255d 100644 --- a/httprunner/templates/extent_report_template.html +++ b/httprunner/templates/extent_report_template.html @@ -327,30 +327,31 @@ {% endfor %} {% for key, value in record.meta_data.response.items() %} - {% if key != 'status_code' %} -
low_priority{{ key }} - {% if key == "headers" %} - {% for header_key, header_value in record.meta_data.request.headers.items() %} -
- {{ header_key }}: {{ header_value }} -
- {% endfor %} - {% elif key == "content_type" %} - {% if value == "image" %} - - {% else %} -
{{ record.meta_data.response.body }}
- {% endif %} - {% else %} - {{ value }} - {% endif %} -
low_priority{{ key }} + {% if key == "headers" %} + {% for header_key, header_value in record.meta_data.request.headers.items() %} +
+ {{ header_key }}: {{ header_value }} +
+ {% endfor %} + {% elif key == "text" %} + {% if value == "image" %} + + {% else %} +
{{ record.meta_data.response.text }}
+ {% endif %} + {% else %} + {{value}} + {% endif %} +