From ad81114c15c2920ab80afe3c6dafd1ce3aa9d39f Mon Sep 17 00:00:00 2001 From: debugtalk Date: Thu, 19 Apr 2018 23:40:42 +0800 Subject: [PATCH] #135: extract cookie from response --- httprunner/response.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/httprunner/response.py b/httprunner/response.py index 226642fb..f4d2067c 100644 --- a/httprunner/response.py +++ b/httprunner/response.py @@ -71,12 +71,27 @@ class ResponseObject(object): if top_query in ["body", "content", "text"]: top_query_content = self.parsed_body() + elif top_query == "cookies": + cookies = self.resp_obj.cookies + try: + return cookies[sub_query] + except KeyError: + err_msg = u"Failed to extract attribute from cookies!\n" + err_msg += u"cookies: {}\n".format(cookies) + err_msg += u"attribute: {}".format(sub_query) + logger.log_error(err_msg) + raise exception.ParamsError(err_msg) else: - top_query_content = getattr(self.resp_obj, top_query) + try: + top_query_content = getattr(self.resp_obj, top_query) + except AttributeError: + err_msg = u"Failed to extract attribute from response object: resp_obj.{}".format(top_query) + logger.log_error(err_msg) + raise exception.ParamsError(err_msg) if sub_query: if not isinstance(top_query_content, (dict, CaseInsensitiveDict, list)): - err_msg = u"Failed to extract data with regex!\n" + err_msg = u"Failed to extract data with delimiter!\n" err_msg += u"response: {}\n".format(self.parsed_dict()) err_msg += u"regex: {}\n".format(field) logger.log_error(err_msg)