diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index e9eb25c8..492e365c 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -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** diff --git a/httprunner/report.py b/httprunner/report.py index 1cc69d3b..82bebf3d 100644 --- a/httprunner/report.py +++ b/httprunner/report.py @@ -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: diff --git a/httprunner/static/report_template.html b/httprunner/static/report_template.html index 209c18ae..f943172a 100644 --- a/httprunner/static/report_template.html +++ b/httprunner/static/report_template.html @@ -232,14 +232,10 @@
{{ value | e }}
{% else %}
- {{value}}
+ {{value}}
{% endif %}
{{ value | e }}
{% else %}
{{ value }}
diff --git a/tests/test_api.py b/tests/test_api.py
index 9b77d8bd..e8711ecd 100644
--- a/tests/test_api.py
+++ b/tests/test_api.py
@@ -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"
)