mirror of
https://github.com/httprunner/httprunner.git
synced 2026-09-04 23:16:57 +08:00
bugfix: UnicodeDecodeError in Python2.7
This commit is contained in:
@@ -115,7 +115,7 @@ class HttpSession(requests.Session):
|
|||||||
def log_print(request_response):
|
def log_print(request_response):
|
||||||
msg = "\n================== {} details ==================\n".format(request_response)
|
msg = "\n================== {} details ==================\n".format(request_response)
|
||||||
for key, value in self.meta_data[request_response].items():
|
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)
|
logger.log_debug(msg)
|
||||||
|
|
||||||
# record original request info
|
# record original request info
|
||||||
|
|||||||
@@ -261,6 +261,10 @@ class Context(object):
|
|||||||
def validate(self, validators, resp_obj):
|
def validate(self, validators, resp_obj):
|
||||||
""" make validations
|
""" make validations
|
||||||
"""
|
"""
|
||||||
|
if not validators:
|
||||||
|
return
|
||||||
|
|
||||||
|
logger.log_info("start to validate.")
|
||||||
self.evaluated_validators = []
|
self.evaluated_validators = []
|
||||||
validate_pass = True
|
validate_pass = True
|
||||||
|
|
||||||
|
|||||||
@@ -197,14 +197,14 @@ class Runner(object):
|
|||||||
err_req_msg = "request: \n"
|
err_req_msg = "request: \n"
|
||||||
err_req_msg += "headers: {}\n".format(parsed_request.pop("headers", {}))
|
err_req_msg += "headers: {}\n".format(parsed_request.pop("headers", {}))
|
||||||
for k, v in parsed_request.items():
|
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)
|
logger.log_error(err_req_msg)
|
||||||
|
|
||||||
# log response
|
# log response
|
||||||
err_resp_msg = "response: \n"
|
err_resp_msg = "response: \n"
|
||||||
err_resp_msg += "status_code: {}\n".format(resp_obj.status_code)
|
err_resp_msg += "status_code: {}\n".format(resp_obj.status_code)
|
||||||
err_resp_msg += "headers: {}\n".format(resp_obj.headers)
|
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)
|
logger.log_error(err_resp_msg)
|
||||||
|
|
||||||
raise
|
raise
|
||||||
|
|||||||
+1
-1
@@ -26,7 +26,7 @@ class TestCase(unittest.TestCase):
|
|||||||
try:
|
try:
|
||||||
self.test_runner.run_test(self.testcase_dict)
|
self.test_runner.run_test(self.testcase_dict)
|
||||||
except exceptions.MyBaseFailure as ex:
|
except exceptions.MyBaseFailure as ex:
|
||||||
self.fail(str(ex))
|
self.fail(repr(ex))
|
||||||
finally:
|
finally:
|
||||||
if hasattr(self.test_runner.http_client_session, "meta_data"):
|
if hasattr(self.test_runner.http_client_session, "meta_data"):
|
||||||
self.meta_data = self.test_runner.http_client_session.meta_data
|
self.meta_data = self.test_runner.http_client_session.meta_data
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ import random
|
|||||||
import re
|
import re
|
||||||
|
|
||||||
from httprunner import exceptions, logger, utils
|
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
|
from httprunner.utils import FileUtils
|
||||||
|
|
||||||
variable_regexp = r"\$([\w_]+)"
|
variable_regexp = r"\$([\w_]+)"
|
||||||
@@ -627,7 +628,9 @@ def substitute_variables_with_mapping(content, mapping):
|
|||||||
# content is a variable
|
# content is a variable
|
||||||
content = value
|
content = value
|
||||||
else:
|
else:
|
||||||
content = content.replace(var, str(value))
|
if not isinstance(value, str):
|
||||||
|
value = builtin_str(value)
|
||||||
|
content = content.replace(var, value)
|
||||||
|
|
||||||
return content
|
return content
|
||||||
|
|
||||||
@@ -850,9 +853,12 @@ class TestcaseParser(object):
|
|||||||
content = variable_value
|
content = variable_value
|
||||||
else:
|
else:
|
||||||
# content contains one or several variables
|
# content contains one or several variables
|
||||||
|
if not isinstance(variable_value, str):
|
||||||
|
variable_value = builtin_str(variable_value)
|
||||||
|
|
||||||
content = content.replace(
|
content = content.replace(
|
||||||
"${}".format(variable_name),
|
"${}".format(variable_name),
|
||||||
str(variable_value), 1
|
variable_value, 1
|
||||||
)
|
)
|
||||||
|
|
||||||
return content
|
return content
|
||||||
|
|||||||
Reference in New Issue
Block a user