From 7158128fef7e5193948a2b435d448d79c72f4df9 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Tue, 19 May 2020 16:07:14 +0800 Subject: [PATCH] feat: log request/response headers and body with indent --- docs/CHANGELOG.md | 1 + httprunner/client.py | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index ac46eb4f..2e794dd4 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -7,6 +7,7 @@ - feat: make testsuite and run testsuite - feat: testcase/testsuite config support getting variables by function - feat: har2case with request cookies +- feat: log request/response headers and body with indent **Fixed** diff --git a/httprunner/client.py b/httprunner/client.py index 22ccb8b1..b7e645a7 100644 --- a/httprunner/client.py +++ b/httprunner/client.py @@ -1,3 +1,4 @@ +import json import time import requests @@ -32,12 +33,19 @@ def get_req_resp_record(resp_obj: Response) -> ReqRespData: def log_print(req_or_resp, r_type): msg = f"\n================== {r_type} details ==================\n" for key, value in req_or_resp.dict().items(): - msg += "{:<16} : {}\n".format(key, repr(value)) + if isinstance(value, dict): + value = json.dumps(value, indent=4) + + msg += "{:<8} : {}\n".format(key, value) logger.debug(msg) # record actual request info request_headers = dict(resp_obj.request.headers) request_body = resp_obj.request.body + try: + request_body = json.loads(request_body) + except json.JSONDecodeError: + pass if request_body: request_content_type = lower_dict_keys(request_headers).get("content-type")