mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-13 17:29:56 +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",
|
||||
"variables": [],
|
||||
"validate": [],
|
||||
"extract": []
|
||||
"extract": {}
|
||||
}
|
||||
# testcase reference
|
||||
{
|
||||
@@ -310,7 +310,7 @@ def load_test(raw_testinfo):
|
||||
"request": {},
|
||||
"variables": [],
|
||||
"validate": [],
|
||||
"extract": []
|
||||
"extract": {}
|
||||
}
|
||||
|
||||
Returns:
|
||||
|
||||
@@ -566,14 +566,14 @@ def _extend_with_api(test_dict, api_def_dict):
|
||||
}
|
||||
>>> test_dict = {
|
||||
"name": "get token 2",
|
||||
"extract": [{"token": "content.token"}],
|
||||
"extract": {"token": "content.token"},
|
||||
"validate": [{'eq': ['status_code', 201]}, {'len_eq': ['content.token', 16]}]
|
||||
}
|
||||
>>> _extend_with_api(test_dict, api_def_dict)
|
||||
{
|
||||
"name": "get token 2",
|
||||
"request": {...},
|
||||
"extract": [{"token": "content.token"}],
|
||||
"extract": {"token": "content.token"},
|
||||
"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
|
||||
def_extrators = api_def_dict.pop("extract", [])
|
||||
def_extrators = api_def_dict.pop("extract", {})
|
||||
test_dict["extract"] = utils.extend_variables(
|
||||
def_extrators,
|
||||
test_dict.get("extract", [])
|
||||
test_dict.get("extract", {})
|
||||
)
|
||||
|
||||
# TODO: merge & override request
|
||||
|
||||
@@ -169,7 +169,7 @@ class Runner(object):
|
||||
},
|
||||
"json": {"name": "user", "password": "123456"}
|
||||
},
|
||||
"extract": [], # optional
|
||||
"extract": {}, # optional
|
||||
"validate": [], # optional
|
||||
"setup_hooks": [], # optional
|
||||
"teardown_hooks": [] # optional
|
||||
@@ -238,7 +238,7 @@ class Runner(object):
|
||||
self.do_hook_actions(teardown_hooks, "teardown")
|
||||
|
||||
# extract
|
||||
extractors = test_dict.get("extract", [])
|
||||
extractors = test_dict.get("extract", {})
|
||||
extracted_variables_mapping = resp_obj.extract_response(extractors)
|
||||
self.session_context.update_seesion_variables(extracted_variables_mapping)
|
||||
|
||||
|
||||
@@ -20,11 +20,9 @@
|
||||
{"expect_status_code": 200},
|
||||
{"token_len": 16}
|
||||
],
|
||||
"extract": [
|
||||
{
|
||||
"token": "content.token"
|
||||
}
|
||||
],
|
||||
"extract": {
|
||||
"token": "content.token"
|
||||
},
|
||||
"validate": [
|
||||
{"check": "status_code", "comparator": "eq", "expect": 200},
|
||||
{"eq": ["status_code", "$expect_status_code"]},
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
expect_status_code: 200
|
||||
token_len: 16
|
||||
extract:
|
||||
- token: content.token
|
||||
token: content.token
|
||||
validate:
|
||||
- {"check": "status_code", "comparator": "eq", "expect": 200}
|
||||
- eq: ["status_code", $expect_status_code]
|
||||
@@ -38,7 +38,7 @@
|
||||
name: "user1"
|
||||
password: "123456"
|
||||
extract:
|
||||
- success: content.success
|
||||
success: content.success
|
||||
validate:
|
||||
- eq: ["status_code", 201]
|
||||
- sum_status_code: ["status_code", 3]
|
||||
|
||||
Reference in New Issue
Block a user