refactor: dumps request and response headers/body, display indented json in report

This commit is contained in:
debugtalk
2019-12-17 18:57:03 +08:00
parent a57788f6ad
commit 2acf8d511b
3 changed files with 28 additions and 19 deletions

View File

@@ -1,5 +1,11 @@
# Release History
## 2.4.4 (2019-12-17)
**Changed**
- refactor: dumps request and response headers/body, display indented json in report
## 2.4.3 (2019-12-16)
**Added**

View File

@@ -110,6 +110,19 @@ def stringify_summary(summary):
record["response_time"] = __get_total_response_time(meta_datas_expanded)
def dumps_json(value):
""" dumps json value to indented string
Args:
value (dict): raw json data
Returns:
str: indented json dump string
"""
return json.dumps(value, indent=2, ensure_ascii=False)
def __stringify_request(request_data):
""" stringfy HTTP request data
@@ -140,8 +153,8 @@ def __stringify_request(request_data):
"""
for key, value in request_data.items():
if isinstance(value, list):
value = json.dumps(value, indent=2, ensure_ascii=False)
if isinstance(value, (list, dict)):
value = dumps_json(value)
elif isinstance(value, bytes):
try:
@@ -189,8 +202,8 @@ def __stringify_response(response_data):
"""
for key, value in response_data.items():
if isinstance(value, list):
value = json.dumps(value, indent=2, ensure_ascii=False)
if isinstance(value, (list, dict)):
value = dumps_json(value)
elif isinstance(value, bytes):
try:

View File

@@ -232,14 +232,10 @@
<tr>
<th>{{key}}</th>
<td>
{% if key == "headers" %}
{% for header_key, header_value in req_resp.request.headers.items() %}
<div>
<strong>{{ header_key }}</strong>: {{ header_value }}
</div>
{% endfor %}
{% if key in ["headers", "body"] %}
<pre>{{ value | e }}</pre>
{% else %}
{{value}}
{{value}}
{% endif %}
</td>
</tr>
@@ -254,19 +250,13 @@
<tr>
<th>{{key}}</th>
<td>
{% if key == "headers" %}
{% for header_key, header_value in req_resp.response.headers.items() %}
<div>
<strong>{{ header_key }}</strong>: {{ header_value }}
</div>
{% endfor %}
{% elif key == "content" %}
{% if key == "content" %}
{% if "image" in req_resp.response.content_type %}
<img src="{{ req_resp.response.content }}" />
{% else %}
{{ value }}
{% endif %}
{% elif key in ["text", "json"] %}
{% elif key in ["headers", "text", "json"] %}
<pre>{{ value | e }}</pre>
{% else %}
{{ value }}