From cfd1d84189bc5209b1b0455310f04ae901509fdf Mon Sep 17 00:00:00 2001 From: debugtalk Date: Fri, 23 Nov 2018 18:27:29 +0800 Subject: [PATCH] record response content: 1, only record json if response content is in JSON foramt; 2, do not record bytes content; 3, omit text charactors greater than 1000. --- httprunner/client.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/httprunner/client.py b/httprunner/client.py index 1a6c1af6..c62d12aa 100644 --- a/httprunner/client.py +++ b/httprunner/client.py @@ -56,7 +56,6 @@ class HttpSession(requests.Session): "response_time_ms": "N/A", "elapsed_ms": "N/A", "encoding": None, - "content": None, "content_type": "" } } @@ -139,14 +138,20 @@ class HttpSession(requests.Session): self.meta_data["response"]["headers"] = dict(response.headers) self.meta_data["response"]["cookies"] = response.cookies or {} self.meta_data["response"]["encoding"] = response.encoding - self.meta_data["response"]["content"] = response.content - self.meta_data["response"]["text"] = response.text self.meta_data["response"]["content_type"] = response.headers.get("Content-Type", "") try: + # try to only record json data self.meta_data["response"]["json"] = response.json() except ValueError: - self.meta_data["response"]["json"] = None + # only record at most 1000 text charactors + resp_text = response.text + resp_text_length = len(resp_text) + if resp_text_length > 1000: + resp_text = resp_text[0:1000] \ + + " ... OMITTED {} CHARACTORS ...".format(resp_text_length-1000) + + self.meta_data["response"]["text"] = resp_text # get the length of the content, but if the argument stream is set to True, we take # the size from the content-length header, in order to not trigger fetching of the body