mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-24 09:50:00 +08:00
feat: 'extract' is used to replace 'output' when passing former teststep's (as a testcase) export value to next teststep
This commit is contained in:
@@ -636,23 +636,28 @@ class TestApi(ApiServerUnittest):
|
||||
self.assertEqual(len(tests_results[0][1].records), 2)
|
||||
|
||||
def test_testcase_complex_run_suite(self):
|
||||
testcase_path = "tests/testcases/create_user.yml"
|
||||
tests_mapping = loader.load_tests(testcase_path)
|
||||
testcases = parser.parse_tests(tests_mapping)
|
||||
runner = HttpRunner()
|
||||
test_suite = runner._add_tests(testcases)
|
||||
tests_results = runner._run_suite(test_suite)
|
||||
self.assertEqual(len(tests_results[0][1].records), 2)
|
||||
for testcase_path in [
|
||||
"tests/testcases/create_user.yml",
|
||||
"tests/testcases/create_user.v2.yml",
|
||||
"tests/testcases/create_user.json",
|
||||
"tests/testcases/create_user.v2.json"
|
||||
]:
|
||||
tests_mapping = loader.load_tests(testcase_path)
|
||||
testcases = parser.parse_tests(tests_mapping)
|
||||
runner = HttpRunner()
|
||||
test_suite = runner._add_tests(testcases)
|
||||
tests_results = runner._run_suite(test_suite)
|
||||
self.assertEqual(len(tests_results[0][1].records), 2)
|
||||
|
||||
results = tests_results[0][1]
|
||||
self.assertEqual(
|
||||
results.records[0]["name"],
|
||||
"setup and reset all (override) for TESTCASE_CREATE_XXX."
|
||||
)
|
||||
self.assertEqual(
|
||||
results.records[1]["name"],
|
||||
"create user and check result."
|
||||
)
|
||||
results = tests_results[0][1]
|
||||
self.assertEqual(
|
||||
results.records[0]["name"],
|
||||
"setup and reset all (override) for TESTCASE_CREATE_XXX."
|
||||
)
|
||||
self.assertEqual(
|
||||
results.records[1]["name"],
|
||||
"create user and check result."
|
||||
)
|
||||
|
||||
def test_testsuite_loader(self):
|
||||
testcase_path = "tests/testsuites/create_users.yml"
|
||||
|
||||
@@ -271,8 +271,7 @@ class TestSuiteLoader(unittest.TestCase):
|
||||
"testcase": "testcases/setup.yml",
|
||||
"variables": [
|
||||
{"device_sn": "$device_sn"}
|
||||
],
|
||||
"output": ["token", "device_sn"]
|
||||
]
|
||||
}
|
||||
testcase = loader.load_teststep(raw_test)
|
||||
self.assertEqual(
|
||||
|
||||
34
tests/testcases/create_user.json
Normal file
34
tests/testcases/create_user.json
Normal file
@@ -0,0 +1,34 @@
|
||||
[
|
||||
{
|
||||
"config": {
|
||||
"id": "create_user",
|
||||
"variables": {
|
||||
"device_sn": "TESTCASE_CREATE_XXX",
|
||||
"uid": 9001
|
||||
},
|
||||
"output": [
|
||||
"session_token"
|
||||
],
|
||||
"base_url": "http://127.0.0.1:5000",
|
||||
"name": "create user and check result."
|
||||
}
|
||||
},
|
||||
{
|
||||
"test": {
|
||||
"testcase": "testcases/setup.yml",
|
||||
"extract": [
|
||||
"session_token"
|
||||
],
|
||||
"name": "setup and reset all (override) for $device_sn."
|
||||
}
|
||||
},
|
||||
{
|
||||
"test": {
|
||||
"testcase": "testcases/deps/check_and_create.yml",
|
||||
"variables": {
|
||||
"token": "$session_token"
|
||||
},
|
||||
"name": "create user and check result."
|
||||
}
|
||||
}
|
||||
]
|
||||
30
tests/testcases/create_user.v2.json
Normal file
30
tests/testcases/create_user.v2.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"config": {
|
||||
"id": "create_user",
|
||||
"variables": {
|
||||
"device_sn": "TESTCASE_CREATE_XXX",
|
||||
"uid": 9001
|
||||
},
|
||||
"output": [
|
||||
"session_token"
|
||||
],
|
||||
"base_url": "http://127.0.0.1:5000",
|
||||
"name": "create user and check result."
|
||||
},
|
||||
"teststeps": [
|
||||
{
|
||||
"testcase": "testcases/setup.yml",
|
||||
"extract": [
|
||||
"session_token"
|
||||
],
|
||||
"name": "setup and reset all (override) for $device_sn."
|
||||
},
|
||||
{
|
||||
"testcase": "testcases/deps/check_and_create.yml",
|
||||
"variables": {
|
||||
"token": "$session_token"
|
||||
},
|
||||
"name": "create user and check result."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -12,9 +12,8 @@ teststeps:
|
||||
-
|
||||
name: setup and reset all (override) for $device_sn.
|
||||
testcase: testcases/setup.yml
|
||||
output:
|
||||
extract:
|
||||
- session_token
|
||||
|
||||
-
|
||||
name: create user and check result.
|
||||
variables:
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
- test:
|
||||
name: setup and reset all (override) for $device_sn.
|
||||
testcase: testcases/setup.yml
|
||||
output:
|
||||
extract:
|
||||
- session_token
|
||||
|
||||
- test:
|
||||
|
||||
Reference in New Issue
Block a user