mirror of
https://github.com/httprunner/httprunner.git
synced 2026-07-10 15:02:13 +08:00
make extract in testcase template compatible with mapping style:
new mapping style:
extract: {
a: content.a,
b: text.b
}
Also, the former list style is still valid:
extract: [
{a: content.a},
{b: text.b}
]
This commit is contained in:
@@ -296,7 +296,7 @@ def load_test(raw_testinfo):
|
|||||||
"api": "api_add_cart",
|
"api": "api_add_cart",
|
||||||
"variables": [],
|
"variables": [],
|
||||||
"validate": [],
|
"validate": [],
|
||||||
"extract": []
|
"extract": {}
|
||||||
}
|
}
|
||||||
# testcase reference
|
# testcase reference
|
||||||
{
|
{
|
||||||
@@ -310,7 +310,7 @@ def load_test(raw_testinfo):
|
|||||||
"request": {},
|
"request": {},
|
||||||
"variables": [],
|
"variables": [],
|
||||||
"validate": [],
|
"validate": [],
|
||||||
"extract": []
|
"extract": {}
|
||||||
}
|
}
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|||||||
@@ -566,14 +566,14 @@ def _extend_with_api(test_dict, api_def_dict):
|
|||||||
}
|
}
|
||||||
>>> test_dict = {
|
>>> test_dict = {
|
||||||
"name": "get token 2",
|
"name": "get token 2",
|
||||||
"extract": [{"token": "content.token"}],
|
"extract": {"token": "content.token"},
|
||||||
"validate": [{'eq': ['status_code', 201]}, {'len_eq': ['content.token', 16]}]
|
"validate": [{'eq': ['status_code', 201]}, {'len_eq': ['content.token', 16]}]
|
||||||
}
|
}
|
||||||
>>> _extend_with_api(test_dict, api_def_dict)
|
>>> _extend_with_api(test_dict, api_def_dict)
|
||||||
{
|
{
|
||||||
"name": "get token 2",
|
"name": "get token 2",
|
||||||
"request": {...},
|
"request": {...},
|
||||||
"extract": [{"token": "content.token"}],
|
"extract": {"token": "content.token"},
|
||||||
"validate": [{'eq': ['status_code', 201]}, {'len_eq': ['content.token', 16]}]
|
"validate": [{'eq': ['status_code', 201]}, {'len_eq': ['content.token', 16]}]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -606,10 +606,10 @@ def _extend_with_api(test_dict, api_def_dict):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# merge & override extractors
|
# merge & override extractors
|
||||||
def_extrators = api_def_dict.pop("extract", [])
|
def_extrators = api_def_dict.pop("extract", {})
|
||||||
test_dict["extract"] = utils.extend_variables(
|
test_dict["extract"] = utils.extend_variables(
|
||||||
def_extrators,
|
def_extrators,
|
||||||
test_dict.get("extract", [])
|
test_dict.get("extract", {})
|
||||||
)
|
)
|
||||||
|
|
||||||
# TODO: merge & override request
|
# TODO: merge & override request
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ class Runner(object):
|
|||||||
},
|
},
|
||||||
"json": {"name": "user", "password": "123456"}
|
"json": {"name": "user", "password": "123456"}
|
||||||
},
|
},
|
||||||
"extract": [], # optional
|
"extract": {}, # optional
|
||||||
"validate": [], # optional
|
"validate": [], # optional
|
||||||
"setup_hooks": [], # optional
|
"setup_hooks": [], # optional
|
||||||
"teardown_hooks": [] # optional
|
"teardown_hooks": [] # optional
|
||||||
@@ -238,7 +238,7 @@ class Runner(object):
|
|||||||
self.do_hook_actions(teardown_hooks, "teardown")
|
self.do_hook_actions(teardown_hooks, "teardown")
|
||||||
|
|
||||||
# extract
|
# extract
|
||||||
extractors = test_dict.get("extract", [])
|
extractors = test_dict.get("extract", {})
|
||||||
extracted_variables_mapping = resp_obj.extract_response(extractors)
|
extracted_variables_mapping = resp_obj.extract_response(extractors)
|
||||||
self.session_context.update_seesion_variables(extracted_variables_mapping)
|
self.session_context.update_seesion_variables(extracted_variables_mapping)
|
||||||
|
|
||||||
|
|||||||
@@ -20,11 +20,9 @@
|
|||||||
{"expect_status_code": 200},
|
{"expect_status_code": 200},
|
||||||
{"token_len": 16}
|
{"token_len": 16}
|
||||||
],
|
],
|
||||||
"extract": [
|
"extract": {
|
||||||
{
|
"token": "content.token"
|
||||||
"token": "content.token"
|
},
|
||||||
}
|
|
||||||
],
|
|
||||||
"validate": [
|
"validate": [
|
||||||
{"check": "status_code", "comparator": "eq", "expect": 200},
|
{"check": "status_code", "comparator": "eq", "expect": 200},
|
||||||
{"eq": ["status_code", "$expect_status_code"]},
|
{"eq": ["status_code", "$expect_status_code"]},
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
expect_status_code: 200
|
expect_status_code: 200
|
||||||
token_len: 16
|
token_len: 16
|
||||||
extract:
|
extract:
|
||||||
- token: content.token
|
token: content.token
|
||||||
validate:
|
validate:
|
||||||
- {"check": "status_code", "comparator": "eq", "expect": 200}
|
- {"check": "status_code", "comparator": "eq", "expect": 200}
|
||||||
- eq: ["status_code", $expect_status_code]
|
- eq: ["status_code", $expect_status_code]
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
name: "user1"
|
name: "user1"
|
||||||
password: "123456"
|
password: "123456"
|
||||||
extract:
|
extract:
|
||||||
- success: content.success
|
success: content.success
|
||||||
validate:
|
validate:
|
||||||
- eq: ["status_code", 201]
|
- eq: ["status_code", 201]
|
||||||
- sum_status_code: ["status_code", 3]
|
- sum_status_code: ["status_code", 3]
|
||||||
|
|||||||
Reference in New Issue
Block a user