Merge pull request #794 from httprunner/leo_dev

2.4.4 (2019-12-17)

**Changed**

- refactor: dumps request and response headers/body, display indented json in report
This commit is contained in:
debugtalk
2019-12-17 20:49:43 +08:00
committed by GitHub
4 changed files with 31 additions and 20 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 }}

View File

@@ -1,3 +1,4 @@
import json
import os
import re
import shutil
@@ -267,8 +268,9 @@ class TestHttpRunner(ApiServerUnittest):
self.assertTrue(summary["success"])
self.assertEqual(summary["stat"]["testcases"]["total"], 1)
self.assertEqual(summary["stat"]["teststeps"]["total"], 1)
resp_json = json.loads(summary["details"][0]["records"][0]["meta_datas"]["data"][0]["response"]["json"])
self.assertEqual(
summary["details"][0]["records"][0]["meta_datas"]["data"][0]["response"]["json"]["data"],
resp_json["data"],
"abc"
)