diff --git a/httprunner/client.py b/httprunner/client.py index 0644b0bc..0f9e4d9a 100644 --- a/httprunner/client.py +++ b/httprunner/client.py @@ -115,7 +115,7 @@ class HttpSession(requests.Session): def log_print(request_response): msg = "\n================== {} details ==================\n".format(request_response) for key, value in self.meta_data[request_response].items(): - msg += "{:<16} : {}\n".format(key, value) + msg += "{:<16} : {}\n".format(key, repr(value)) logger.log_debug(msg) # record original request info diff --git a/httprunner/context.py b/httprunner/context.py index e4799c8c..59734b29 100644 --- a/httprunner/context.py +++ b/httprunner/context.py @@ -261,6 +261,10 @@ class Context(object): def validate(self, validators, resp_obj): """ make validations """ + if not validators: + return + + logger.log_info("start to validate.") self.evaluated_validators = [] validate_pass = True diff --git a/httprunner/runner.py b/httprunner/runner.py index 12c31b13..9f38f1a7 100644 --- a/httprunner/runner.py +++ b/httprunner/runner.py @@ -197,14 +197,14 @@ class Runner(object): err_req_msg = "request: \n" err_req_msg += "headers: {}\n".format(parsed_request.pop("headers", {})) for k, v in parsed_request.items(): - err_req_msg += "{}: {}\n".format(k, v) + err_req_msg += "{}: {}\n".format(k, repr(v)) logger.log_error(err_req_msg) # log response err_resp_msg = "response: \n" err_resp_msg += "status_code: {}\n".format(resp_obj.status_code) err_resp_msg += "headers: {}\n".format(resp_obj.headers) - err_resp_msg += "content: {}\n".format(resp_obj.content) + err_resp_msg += "content: {}\n".format(repr(resp_obj.text)) logger.log_error(err_resp_msg) raise diff --git a/httprunner/task.py b/httprunner/task.py index 44004c8e..437ae6d3 100644 --- a/httprunner/task.py +++ b/httprunner/task.py @@ -26,7 +26,7 @@ class TestCase(unittest.TestCase): try: self.test_runner.run_test(self.testcase_dict) except exceptions.MyBaseFailure as ex: - self.fail(str(ex)) + self.fail(repr(ex)) finally: if hasattr(self.test_runner.http_client_session, "meta_data"): self.meta_data = self.test_runner.http_client_session.meta_data diff --git a/httprunner/testcase.py b/httprunner/testcase.py index ac4fef16..b7a52a2e 100644 --- a/httprunner/testcase.py +++ b/httprunner/testcase.py @@ -10,7 +10,8 @@ import random import re from httprunner import exceptions, logger, utils -from httprunner.compat import OrderedDict, basestring, numeric_types +from httprunner.compat import (OrderedDict, basestring, builtin_str, + numeric_types, str) from httprunner.utils import FileUtils variable_regexp = r"\$([\w_]+)" @@ -627,7 +628,9 @@ def substitute_variables_with_mapping(content, mapping): # content is a variable content = value else: - content = content.replace(var, str(value)) + if not isinstance(value, str): + value = builtin_str(value) + content = content.replace(var, value) return content @@ -850,9 +853,12 @@ class TestcaseParser(object): content = variable_value else: # content contains one or several variables + if not isinstance(variable_value, str): + variable_value = builtin_str(variable_value) + content = content.replace( "${}".format(variable_name), - str(variable_value), 1 + variable_value, 1 ) return content