mirror of
https://github.com/httprunner/httprunner.git
synced 2026-07-13 00:11:28 +08:00
parse_response_object: load response content as json format if possible
This commit is contained in:
@@ -22,8 +22,13 @@ def load_testcases(testcase_file_path):
|
|||||||
raise ParamsError("Bad testcase file name!")
|
raise ParamsError("Bad testcase file name!")
|
||||||
|
|
||||||
def parse_response_object(resp_obj):
|
def parse_response_object(resp_obj):
|
||||||
|
try:
|
||||||
|
resp_content = resp_obj.json()
|
||||||
|
except json.decoder.JSONDecodeError:
|
||||||
|
resp_content = resp_obj.text
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'status_code': resp_obj.status_code,
|
'status_code': resp_obj.status_code,
|
||||||
'headers': resp_obj.headers,
|
'headers': resp_obj.headers,
|
||||||
'content': resp_obj.content
|
'content': resp_content
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,10 @@ data structure:
|
|||||||
"""
|
"""
|
||||||
users_dict = {}
|
users_dict = {}
|
||||||
|
|
||||||
|
@app.route('/')
|
||||||
|
def index():
|
||||||
|
return "Hello World!"
|
||||||
|
|
||||||
@app.route('/api/users')
|
@app.route('/api/users')
|
||||||
def get_users():
|
def get_users():
|
||||||
users_list = [user for uid, user in users_dict.items()]
|
users_list = [user for uid, user in users_dict.items()]
|
||||||
|
|||||||
@@ -31,10 +31,24 @@ class TestUtils(ApiServerUnittest):
|
|||||||
self.assertIn('url', testcases[0]['request'])
|
self.assertIn('url', testcases[0]['request'])
|
||||||
self.assertIn('method', testcases[0]['request'])
|
self.assertIn('method', testcases[0]['request'])
|
||||||
|
|
||||||
def test_parse_response_object(self):
|
def test_parse_response_object_json(self):
|
||||||
url = "http://127.0.0.1:5000/api/users"
|
url = "http://127.0.0.1:5000/api/users"
|
||||||
resp_obj = requests.get(url)
|
resp_obj = requests.get(url)
|
||||||
parse_result = utils.parse_response_object(resp_obj)
|
parse_result = utils.parse_response_object(resp_obj)
|
||||||
self.assertIn('status_code', parse_result)
|
self.assertIn('status_code', parse_result)
|
||||||
self.assertIn('headers', parse_result)
|
self.assertIn('headers', parse_result)
|
||||||
self.assertIn('content', parse_result)
|
self.assertIn('content', parse_result)
|
||||||
|
self.assertIn('Content-Type', parse_result['headers'])
|
||||||
|
self.assertIn('Content-Length', parse_result['headers'])
|
||||||
|
self.assertIn('success', parse_result['content'])
|
||||||
|
|
||||||
|
def test_parse_response_object_text(self):
|
||||||
|
url = "http://127.0.0.1:5000/"
|
||||||
|
resp_obj = requests.get(url)
|
||||||
|
parse_result = utils.parse_response_object(resp_obj)
|
||||||
|
self.assertIn('status_code', parse_result)
|
||||||
|
self.assertIn('headers', parse_result)
|
||||||
|
self.assertIn('content', parse_result)
|
||||||
|
self.assertIn('Content-Type', parse_result['headers'])
|
||||||
|
self.assertIn('Content-Length', parse_result['headers'])
|
||||||
|
self.assertTrue(str, type(parse_result['content']))
|
||||||
|
|||||||
Reference in New Issue
Block a user