mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-19 10:39:31 +08:00
feat: testcase in format version 2
This commit is contained in:
@@ -292,13 +292,28 @@ class TestSuiteLoader(unittest.TestCase):
|
||||
self.assertEqual(loaded_content["request"]["url"], "/api/users/$uid")
|
||||
|
||||
def test_load_test_file_testcase(self):
|
||||
loaded_content = loader.load_test_file("tests/testcases/setup.yml")
|
||||
self.assertEqual(loaded_content["type"], "testcase")
|
||||
self.assertIn("path", loaded_content)
|
||||
self.assertIn("config", loaded_content)
|
||||
self.assertEqual(loaded_content["config"]["name"], "setup and reset all.")
|
||||
self.assertIn("teststeps", loaded_content)
|
||||
self.assertEqual(len(loaded_content["teststeps"]), 2)
|
||||
for loaded_content in [
|
||||
loader.load_test_file("tests/testcases/setup.yml"),
|
||||
loader.load_test_file("tests/testcases/setup.json")
|
||||
]:
|
||||
self.assertEqual(loaded_content["type"], "testcase")
|
||||
self.assertIn("path", loaded_content)
|
||||
self.assertIn("config", loaded_content)
|
||||
self.assertEqual(loaded_content["config"]["name"], "setup and reset all.")
|
||||
self.assertIn("teststeps", loaded_content)
|
||||
self.assertEqual(len(loaded_content["teststeps"]), 2)
|
||||
|
||||
def test_load_test_file_testcase_v2(self):
|
||||
for loaded_content in [
|
||||
loader.load_test_file("tests/testcases/setup.v2.yml"),
|
||||
loader.load_test_file("tests/testcases/setup.v2.json")
|
||||
]:
|
||||
self.assertEqual(loaded_content["type"], "testcase")
|
||||
self.assertIn("path", loaded_content)
|
||||
self.assertIn("config", loaded_content)
|
||||
self.assertEqual(loaded_content["config"]["name"], "setup and reset all.")
|
||||
self.assertIn("teststeps", loaded_content)
|
||||
self.assertEqual(len(loaded_content["teststeps"]), 2)
|
||||
|
||||
def test_load_test_file_testsuite(self):
|
||||
loaded_content = loader.load_test_file("tests/testsuites/create_users.yml")
|
||||
|
||||
59
tests/testcases/setup.json
Normal file
59
tests/testcases/setup.json
Normal file
@@ -0,0 +1,59 @@
|
||||
[
|
||||
{
|
||||
"config": {
|
||||
"name": "setup and reset all.",
|
||||
"output": [
|
||||
"session_token"
|
||||
],
|
||||
"verify": false,
|
||||
"variables": {
|
||||
"device_sn": "TESTCASE_SETUP_XXX",
|
||||
"app_version": "2.8.6",
|
||||
"os_platform": "ios",
|
||||
"user_agent": "iOS/10.3"
|
||||
},
|
||||
"base_url": "http://127.0.0.1:5000",
|
||||
"id": "setup_and_reset"
|
||||
}
|
||||
},
|
||||
{
|
||||
"test": {
|
||||
"validate": [
|
||||
{
|
||||
"eq": [
|
||||
"status_code",
|
||||
200
|
||||
]
|
||||
},
|
||||
{
|
||||
"len_eq": [
|
||||
"content.token",
|
||||
16
|
||||
]
|
||||
}
|
||||
],
|
||||
"api": "api/get_token.yml",
|
||||
"extract": [
|
||||
{
|
||||
"session_token": "content.token"
|
||||
}
|
||||
],
|
||||
"variables": {
|
||||
"device_sn": "$device_sn",
|
||||
"app_version": "2.8.6",
|
||||
"os_platform": "ios",
|
||||
"user_agent": "iOS/10.3"
|
||||
},
|
||||
"name": "get token (setup)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"test": {
|
||||
"variables": {
|
||||
"token": "$session_token"
|
||||
},
|
||||
"api": "api/reset_all.yml",
|
||||
"name": "reset all users"
|
||||
}
|
||||
}
|
||||
]
|
||||
43
tests/testcases/setup.v2.json
Normal file
43
tests/testcases/setup.v2.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"config": {
|
||||
"name": "setup and reset all.",
|
||||
"base_url": "http://127.0.0.1:5000",
|
||||
"variables": {
|
||||
"device_sn": "TESTCASE_SETUP_XXX",
|
||||
"app_version": "2.8.6",
|
||||
"os_platform": "ios",
|
||||
"user_agent": "iOS/10.3"
|
||||
},
|
||||
"id": "setup_and_reset",
|
||||
"verify": false,
|
||||
"output": [
|
||||
"session_token"
|
||||
]
|
||||
},
|
||||
"teststeps": [
|
||||
{
|
||||
"name": "get token (setup)",
|
||||
"api": "api/get_token.yml",
|
||||
"variables": {
|
||||
"device_sn": "$device_sn",
|
||||
"app_version": "2.8.6",
|
||||
"os_platform": "ios",
|
||||
"user_agent": "iOS/10.3"
|
||||
},
|
||||
"extract": [
|
||||
{"session_token": "content.token"}
|
||||
],
|
||||
"validate": [
|
||||
{"eq": ["status_code", 200]},
|
||||
{"len_eq": ["content.token", 16]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "reset all users",
|
||||
"api": "api/reset_all.yml",
|
||||
"variables": {
|
||||
"token": "$session_token"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
32
tests/testcases/setup.v2.yml
Normal file
32
tests/testcases/setup.v2.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
config:
|
||||
name: "setup and reset all."
|
||||
id: setup_and_reset
|
||||
variables:
|
||||
user_agent: 'iOS/10.3'
|
||||
device_sn: "TESTCASE_SETUP_XXX"
|
||||
os_platform: 'ios'
|
||||
app_version: '2.8.6'
|
||||
base_url: "http://127.0.0.1:5000"
|
||||
verify: False
|
||||
output:
|
||||
- session_token
|
||||
|
||||
teststeps:
|
||||
-
|
||||
name: get token (setup)
|
||||
api: api/get_token.yml
|
||||
variables:
|
||||
user_agent: 'iOS/10.3'
|
||||
device_sn: $device_sn
|
||||
os_platform: 'ios'
|
||||
app_version: '2.8.6'
|
||||
extract:
|
||||
- session_token: content.token
|
||||
validate:
|
||||
- eq: ["status_code", 200]
|
||||
- len_eq: ["content.token", 16]
|
||||
-
|
||||
name: reset all users
|
||||
api: api/reset_all.yml
|
||||
variables:
|
||||
token: $session_token
|
||||
Reference in New Issue
Block a user