diff --git a/docs/prepare/upload-case.md b/docs/prepare/upload-case.md index 58a5ba23..21b00cb0 100644 --- a/docs/prepare/upload-case.md +++ b/docs/prepare/upload-case.md @@ -45,7 +45,7 @@ - eq: ["status_code", 200] ``` -参考案例:[httprunner/tests/httpbin/upload.v2.yml][2] +参考案例:[httprunner/tests/httpbin/upload.yml][2] [1]: https://toolbelt.readthedocs.io/en/latest/uploading-data.html -[2]: https://github.com/httprunner/httprunner/blob/master/tests/httpbin/upload.v2.yml \ No newline at end of file +[2]: https://github.com/httprunner/httprunner/blob/master/tests/httpbin/upload.yml \ No newline at end of file diff --git a/httprunner/loader/buildup_test.py b/httprunner/loader/buildup_test.py index 1d1b78e8..2792264b 100644 --- a/httprunner/loader/buildup_test.py +++ b/httprunner/loader/buildup_test.py @@ -115,18 +115,6 @@ class TestSuiteLoader(unittest.TestCase): self.assertIn("teststeps", loaded_content) self.assertEqual(len(loaded_content["teststeps"]), 2) - def test_load_test_file_testcase_v2(self): - for loaded_content in [ - buildup.load_test_file("tests/testcases/setup.v2.yml"), - buildup.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): for loaded_content in [ buildup.load_test_file("tests/testsuites/create_users.yml"), @@ -143,22 +131,6 @@ class TestSuiteLoader(unittest.TestCase): "create user and check result." ) - def test_load_test_file_testsuite_v2(self): - for loaded_content in [ - buildup.load_test_file("tests/testsuites/create_users.v2.yml"), - buildup.load_test_file("tests/testsuites/create_users.v2.json") - ]: - self.assertEqual(loaded_content["type"], "testsuite") - - testcases = loaded_content["testcases"] - self.assertEqual(len(testcases), 2) - self.assertIn('create user 1000 and check result.', testcases) - self.assertIn('testcase_def', testcases["create user 1000 and check result."]) - self.assertEqual( - testcases["create user 1000 and check result."]["testcase_def"]["config"]["name"], - "create user and check result." - ) - def test_load_tests_api_file(self): path = os.path.join( os.getcwd(), 'tests/api/create_user.yml') @@ -168,26 +140,6 @@ class TestSuiteLoader(unittest.TestCase): self.assertEqual(len(api_list), 1) self.assertEqual(api_list[0]["request"]["url"], "/api/users/$uid") - def test_load_tests_testcase_file(self): - # absolute file path - path = os.path.join( - os.getcwd(), 'tests/data/demo_testcase_hardcode.json') - tests_mapping = loader.load_cases(path) - project_mapping = tests_mapping["project_mapping"] - testcases_list = tests_mapping["testcases"] - self.assertEqual(len(testcases_list), 1) - self.assertEqual(len(testcases_list[0]["teststeps"]), 3) - self.assertIn("get_sign", project_mapping["functions"]) - - # relative file path - path = 'tests/data/demo_testcase_hardcode.yml' - tests_mapping = loader.load_cases(path) - project_mapping = tests_mapping["project_mapping"] - testcases_list = tests_mapping["testcases"] - self.assertEqual(len(testcases_list), 1) - self.assertEqual(len(testcases_list[0]["teststeps"]), 3) - self.assertIn("get_sign", project_mapping["functions"]) - def test_load_tests_testcase_file_2(self): testcase_file_path = os.path.join( os.getcwd(), 'tests/data/demo_testcase.yml') diff --git a/httprunner/loader/load_test.py b/httprunner/loader/load_test.py index 4a2e0f91..87e666b4 100644 --- a/httprunner/loader/load_test.py +++ b/httprunner/loader/load_test.py @@ -62,28 +62,6 @@ class TestFileLoader(unittest.TestCase): with self.assertRaises(exceptions.FileNotFound): load.load_file(testcase_file_path) - def test_load_json_testcases(self): - testcase_file_path = os.path.join( - os.getcwd(), 'tests/data/demo_testcase_hardcode.json') - testcases = load.load_file(testcase_file_path) - self.assertEqual(len(testcases), 3) - test = testcases[0]["test"] - self.assertIn('name', test) - self.assertIn('request', test) - self.assertIn('url', test['request']) - self.assertIn('method', test['request']) - - def test_load_yaml_testcases(self): - testcase_file_path = os.path.join( - os.getcwd(), 'tests/data/demo_testcase_hardcode.yml') - testcases = load.load_file(testcase_file_path) - self.assertEqual(len(testcases), 3) - test = testcases[0]["test"] - self.assertIn('name', test) - self.assertIn('request', test) - self.assertIn('url', test['request']) - self.assertIn('method', test['request']) - def test_load_csv_file_one_parameter(self): csv_file_path = os.path.join( os.getcwd(), 'tests/data/user_agent.csv') diff --git a/httprunner/loader/schemas/testcase.schema.json b/httprunner/loader/schemas/testcase.schema.json index 665b1419..9d098ef8 100644 --- a/httprunner/loader/schemas/testcase.schema.json +++ b/httprunner/loader/schemas/testcase.schema.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema", - "description": "httprunner testcase schema v2 definition", + "description": "httprunner testcase schema definition", "type": "object", "definitions": { "teststep": { @@ -118,7 +118,7 @@ "type": "array", "minItems": 1, "items": { - "$ref": "testcase.schema.v2.json#/definitions/teststep" + "$ref": "testcase.schema.json#/definitions/teststep" } } }, diff --git a/httprunner/loader/schemas/testsuite.schema.json b/httprunner/loader/schemas/testsuite.schema.json index 5eb7eff2..0b3d35ef 100644 --- a/httprunner/loader/schemas/testsuite.schema.json +++ b/httprunner/loader/schemas/testsuite.schema.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema", - "description": "httprunner testsuite schema v2 definition", + "description": "httprunner testsuite schema definition", "type": "object", "definitions": { "testcase": { @@ -35,7 +35,7 @@ "type": "array", "minItems": 1, "items": { - "$ref": "testsuite.schema.v2.json#/definitions/testcase" + "$ref": "testsuite.schema.json#/definitions/testcase" } } }, diff --git a/tests/data/bugfix_type_match.yml b/tests/data/bugfix_type_match.yml index 5d3bd3d2..954a4596 100644 --- a/tests/data/bugfix_type_match.yml +++ b/tests/data/bugfix_type_match.yml @@ -1,8 +1,9 @@ -- config: +config: name: "bugfix testcases." base_url: http://127.0.0.1:5000 -- test: +teststeps: +- name: bugfix type_match #84 request: url: http://127.0.0.1:5000/api/users/1000 diff --git a/tests/data/bugfix_verify.yml b/tests/data/bugfix_verify.yml index d3cd0c47..ddac8282 100644 --- a/tests/data/bugfix_verify.yml +++ b/tests/data/bugfix_verify.yml @@ -1,9 +1,10 @@ -- config: +config: name: basic test with httpbin base_url: https://httpbin.org/ verify: False -- test: +teststeps: +- name: headers request: url: /headers diff --git a/tests/data/demo_testcase.yml b/tests/data/demo_testcase.yml index 2a495b98..72f7973e 100644 --- a/tests/data/demo_testcase.yml +++ b/tests/data/demo_testcase.yml @@ -1,4 +1,4 @@ -- config: +config: name: "123t$var_a" variables: var_a: 1 @@ -8,7 +8,8 @@ var_e: $var_d PROJECT_KEY: ${ENV(PROJECT_KEY)} -- test: +teststeps: +- name: testcase1-$var_a request: url: /api1 diff --git a/tests/data/demo_testcase_cli.yml b/tests/data/demo_testcase_cli.yml index 27db9390..5e092a3f 100644 --- a/tests/data/demo_testcase_cli.yml +++ b/tests/data/demo_testcase_cli.yml @@ -1,4 +1,8 @@ -- test: +config: + name: xxx + +teststeps: +- name: get token request: url: http://127.0.0.1:5000/api/get-token @@ -25,7 +29,7 @@ - {"check": "status_code", "comparator": "sum_status_code", "expect": 2} - sum_status_code: ["status_code", 2] -- test: +- name: create user which does not exist request: url: http://127.0.0.1:5000/api/users/1000 @@ -47,7 +51,7 @@ - {"check": "status_code", "comparator": "eq", "expect": 201} - {"check": "content.success", "comparator": "eq", "expect": true} -- test: +- name: create user which existed times: 2 request: @@ -67,7 +71,7 @@ - {"check": "status_code", "comparator": "eq", "expect": 500} - {"check": "content.success", "comparator": "eq", "expect": false} -- test: +- name: create user which existed (skip unconditionally) skip: skip this test unconditionally times: 2 @@ -88,7 +92,7 @@ - {"check": "status_code", "comparator": "eq", "expect": 500} - {"check": "content.success", "comparator": "eq", "expect": false} -- test: +- name: create user which existed (skip if condition) skipIf: ${skip_test_in_production_env()} times: 2 @@ -109,7 +113,7 @@ - {"check": "status_code", "comparator": "eq", "expect": 500} - {"check": "content.success", "comparator": "eq", "expect": false} -- test: +- name: create user which existed (skip unless condition) skipUnless: ${skip_test_in_production_env()} times: 2 diff --git a/tests/data/demo_testcase_functions.yml b/tests/data/demo_testcase_functions.yml index 801b618b..759d8e02 100644 --- a/tests/data/demo_testcase_functions.yml +++ b/tests/data/demo_testcase_functions.yml @@ -1,4 +1,4 @@ -- config: +config: name: "create user testcases." variables: user_agent: 'iOS/10.3' @@ -7,7 +7,8 @@ app_version: '2.8.6' base_url: ${get_base_url()} -- test: +teststeps: +- name: get token request: url: /api/get-token @@ -25,7 +26,7 @@ - {"check": "status_code", "comparator": "eq", "expect": 200} - {"check": "content.token", "comparator": "len_eq", "expect": 16} -- test: +- name: create user which does not exist variables: user_name: "user1" @@ -44,7 +45,7 @@ - {"check": "status_code", "comparator": "eq", "expect": 201} - {"check": "content.success", "comparator": "eq", "expect": true} -- test: +- name: create user which does not exist request: url: /api/users/1000 diff --git a/tests/data/demo_testcase_hardcode.json b/tests/data/demo_testcase_hardcode.json deleted file mode 100644 index efe42738..00000000 --- a/tests/data/demo_testcase_hardcode.json +++ /dev/null @@ -1,87 +0,0 @@ -[ - { - "test": { - "name": "get token", - "request": { - "url": "http://127.0.0.1:5000/api/get-token", - "method": "POST", - "headers": { - "content-type": "application/json", - "user_agent": "iOS/10.3", - "device_sn": "HZfFBh6tU59EdXJ", - "os_platform": "ios", - "app_version": "2.8.6" - }, - "json": { - "sign": "5188962c489d1a35effa99e9346dd5efd4fdabad" - } - }, - "variables": [ - {"expect_status_code": 200}, - {"token_len": 16} - ], - "extract": { - "token": "content.token" - }, - "validate": [ - {"check": "status_code", "comparator": "eq", "expect": 200}, - {"eq": ["status_code", "$expect_status_code"]}, - {"check": "$token", "comparator": "len_eq", "expect": 16}, - {"len_eq": ["$token", "$token_len"]}, - {"len_eq": ["content.token", 16]}, - {"check": "status_code", "comparator": "sum_status_code", "expect": 2}, - {"sum_status_code": ["status_code", 2]} - ] - } - }, - { - "test": { - "name": "create user which does not exist", - "request": { - "url": "http://127.0.0.1:5000/api/users/2000", - "method": "POST", - "headers": { - "content-type": "application/json", - "device_sn": "HZfFBh6tU59EdXJ", - "token": "$token" - }, - "json": { - "name": "user1", - "password": "123456" - } - }, - "validate": [ - {"eq": ["status_code", 201]}, - {"eq": ["content.success", true]}, - {"check": "status_code", "comparator": "eq", "expect": 201}, - {"sum_status_code": ["status_code", 3]}, - {"check": "content.success", "comparator": "eq", "expect": true} - ] - } - }, - { - "test": { - "name": "create user which existed", - "request": { - "url": "http://127.0.0.1:5000/api/users/2000", - "method": "POST", - "headers": { - "content-type": "application/json", - "device_sn": "HZfFBh6tU59EdXJ", - "token": "$token" - }, - "json": { - "name": "user1", - "password": "123456" - } - }, - "validate": [ - {"eq": ["status_code", 500]}, - {"eq": ["content.success", false]}, - {"check": "status_code", "comparator": "eq", "expect": 500}, - {"sum_status_code": ["status_code", 5]}, - {"check": "content.success", "comparator": "eq", "expect": false} - ] - } - } -] \ No newline at end of file diff --git a/tests/data/demo_testcase_hardcode.yml b/tests/data/demo_testcase_hardcode.yml deleted file mode 100644 index 05df6b4a..00000000 --- a/tests/data/demo_testcase_hardcode.yml +++ /dev/null @@ -1,67 +0,0 @@ -- test: - name: get token - request: - url: http://127.0.0.1:5000/api/get-token - method: POST - headers: - Content-Type: application/json - user_agent: 'iOS/10.3' - device_sn: 'HZfFBh6tU59EdXJ' - os_platform: 'ios' - app_version: '2.8.6' - json: - sign: 5188962c489d1a35effa99e9346dd5efd4fdabad - variables: - expect_status_code: 200 - token_len: 16 - extract: - token: content.token - validate: - - {"check": "status_code", "comparator": "eq", "expect": 200} - - eq: ["status_code", $expect_status_code] - - {"check": "$token", "comparator": "len_eq", "expect": 16} - - len_eq: ["$token", $token_len] - - len_eq: ["content.token", 16] - - {"check": "status_code", "comparator": "sum_status_code", "expect": 2} - - sum_status_code: ["status_code", 2] - -- test: - name: create user which does not exist - request: - url: http://127.0.0.1:5000/api/users/1000 - method: POST - headers: - Content-Type: application/json - device_sn: 'HZfFBh6tU59EdXJ' - token: $token - json: - name: "user1" - password: "123456" - extract: - success: content.success - validate: - - eq: ["status_code", 201] - - sum_status_code: ["status_code", 3] - - eq: ["$success", True] - - eq: ["abc$success", "abcTrue"] - - {"check": "status_code", "comparator": "eq", "expect": 201} - - {"check": "content.success", "comparator": "eq", "expect": true} - -- test: - name: create user which existed - request: - url: http://127.0.0.1:5000/api/users/1000 - method: POST - headers: - Content-Type: application/json - device_sn: 'HZfFBh6tU59EdXJ' - token: $token - json: - name: "user1" - password: "123456" - validate: - - "eq": ["status_code", 500] - - sum_status_code: ["status_code", 5] - - "eq": ["content.success", false] - - {"check": "status_code", "comparator": "eq", "expect": 500} - - {"check": "content.success", "comparator": "eq", "expect": false} \ No newline at end of file diff --git a/tests/data/demo_testcase_layer.yml b/tests/data/demo_testcase_layer.yml index 48145514..bfcaba16 100644 --- a/tests/data/demo_testcase_layer.yml +++ b/tests/data/demo_testcase_layer.yml @@ -1,4 +1,4 @@ -- config: +config: name: "user management testcase." variables: user_agent: 'iOS/10.3' @@ -9,7 +9,8 @@ export: - token -- test: +teststeps: +- name: get token with $user_agent, $app_version api: api/get_token.yml extract: @@ -19,7 +20,7 @@ - "len_eq": ["content.token", 16] - "contains": [{"a": 1, "b": 2}, "b"] -- test: +- name: reset all users api: api/reset_all.yml variables: @@ -28,7 +29,7 @@ - {"check": "status_code", "expect": 200} - {"check": "content.success", "expect": true} -- test: +- name: get user that does not exist api: api/get_user.yml variables: @@ -38,7 +39,7 @@ - {"check": "status_code", "expect": 404} - {"check": "content.success", "expect": false} -- test: +- name: create user which does not exist variables: uid: 1000 @@ -50,7 +51,7 @@ - {"check": "status_code", "expect": 201} - {"check": "content.success", "expect": true} -- test: +- name: get user that has been created api: api/get_user.yml variables: @@ -61,7 +62,7 @@ - {"check": "content.success", "expect": true} - {"check": "content.data.password", "expect": "123456"} -- test: +- name: create user which exists variables: uid: 1000 @@ -73,7 +74,7 @@ - {"check": "status_code", "expect": 500} - {"check": "content.success", "expect": false} -- test: +- name: update user which exists variables: uid: 1000 @@ -85,7 +86,7 @@ - {"check": "status_code", "expect": 200} - {"check": "content.success", "expect": true} -- test: +- name: get user that has been updated api: api/get_user.yml variables: @@ -96,7 +97,7 @@ - {"check": "content.success", "expect": true} - {"check": "content.data.password", "expect": "654321"} -- test: +- name: get users api: api/get_users.yml variables: @@ -105,7 +106,7 @@ - {"check": "status_code", "expect": 200} - {"check": "content.count", "expect": 1} -- test: +- name: delete user that exists api: api/delete_user.yml variables: @@ -115,7 +116,7 @@ - {"check": "status_code", "expect": 200} - {"check": "content.success", "expect": true} -- test: +- name: get users api: api/get_users.yml variables: @@ -124,7 +125,7 @@ - {"check": "status_code", "expect": 200} - {"check": "content.count", "expect": 0} -- test: +- name: create user which has been deleted variables: uid: 1000 @@ -136,7 +137,7 @@ - {"check": "status_code", "expect": 201} - {"check": "content.success", "expect": true} -- test: +- name: get users api: api/get_users.yml variables: diff --git a/tests/data/demo_testcase_variables.yml b/tests/data/demo_testcase_variables.yml index 2510d514..84c7a0f8 100644 --- a/tests/data/demo_testcase_variables.yml +++ b/tests/data/demo_testcase_variables.yml @@ -1,10 +1,11 @@ -- config: +config: name: "create user testcases." variables: device_sn: 'HZfFBh6tU59EdXJ' base_url: ${get_base_url()} -- test: +teststeps: +- name: get token variables: user_agent: 'iOS/10.3' @@ -28,7 +29,7 @@ - {"check": "status_code", "comparator": "eq", "expect": 200} - {"check": "content.token", "comparator": "len_eq", "expect": 16} -- test: +- name: create user which does not exist variables: user_name: "user1" @@ -47,7 +48,7 @@ - {"check": "status_code", "comparator": "eq", "expect": 201} - {"check": "content.success", "comparator": "eq", "expect": true} -- test: +- name: create user which does not exist request: url: /api/users/1000 diff --git a/tests/httpbin/basic.yml b/tests/httpbin/basic.yml index 05fb8f56..ff4b51f2 100644 --- a/tests/httpbin/basic.yml +++ b/tests/httpbin/basic.yml @@ -1,18 +1,9 @@ -- config: +config: name: basic test with httpbin base_url: https://httpbin.org/ -#- test: -# TODO: fix compatibility with Python 2.7, UnicodeDecodeError -# name: index -# request: -# url: / -# method: GET -# validate: -# - eq: ["status_code", 200] -# - contains: [content, "HTTP Request & Response Service"] - -- test: +teststeps: +- name: headers request: url: /headers @@ -21,7 +12,7 @@ - eq: ["status_code", 200] - eq: [content.headers.Host, "httpbin.org"] -- test: +- name: user-agent request: url: /user-agent @@ -30,7 +21,7 @@ - eq: ["status_code", 200] - startswith: [content.user-agent, "python-requests"] -- test: +- name: get without params request: url: /get @@ -39,7 +30,7 @@ - eq: ["status_code", 200] - eq: [content.args, {}] -- test: +- name: get with params in url request: url: /get?a=1&b=2 @@ -48,7 +39,7 @@ - eq: ["status_code", 200] - eq: [content.args, {'a': '1', 'b': '2'}] -- test: +- name: get with params in params field request: url: /get @@ -60,7 +51,7 @@ - eq: ["status_code", 200] - eq: [content.args, {'a': '1', 'b': '2'}] -- test: +- name: set cookie request: url: /cookies/set?name=value @@ -69,7 +60,7 @@ - eq: ["status_code", 200] # - eq: [cookies.name, "value"] -- test: +- name: extract cookie request: url: /cookies @@ -78,7 +69,7 @@ - eq: ["status_code", 200] # - eq: [cookies.name, "value"] -- test: +- name: post data request: url: /post @@ -89,7 +80,7 @@ validate: - eq: ["status_code", 200] -- test: +- name: validate content length request: url: /spec.json diff --git a/tests/httpbin/hooks.yml b/tests/httpbin/hooks.yml index e4670772..280803ce 100644 --- a/tests/httpbin/hooks.yml +++ b/tests/httpbin/hooks.yml @@ -1,4 +1,4 @@ -- config: +config: name: basic test with httpbin base_url: ${get_httpbin_server()} setup_hooks: @@ -6,7 +6,8 @@ teardown_hooks: - ${hook_print(teardown)} -- test: +teststeps: +- name: headers request: url: /headers @@ -20,7 +21,7 @@ - eq: ["status_code", 200] - contained_by: [content.headers.Host, "${get_httpbin_server()}"] -- test: +- name: alter response request: url: /headers diff --git a/tests/httpbin/load_image.yml b/tests/httpbin/load_image.yml index 4ea6da75..7a2ada65 100644 --- a/tests/httpbin/load_image.yml +++ b/tests/httpbin/load_image.yml @@ -1,8 +1,9 @@ -- config: +config: name: load images base_url: ${get_httpbin_server()} -- test: +teststeps: +- name: get png image request: url: /image/png @@ -10,7 +11,7 @@ validate: - eq: ["status_code", 200] -- test: +- name: get jpeg image request: url: /image/jpeg @@ -18,7 +19,7 @@ validate: - eq: ["status_code", 200] -- test: +- name: get webp image request: url: /image/webp @@ -26,7 +27,7 @@ validate: - eq: ["status_code", 200] -- test: +- name: get svg image request: url: /image/svg diff --git a/tests/httpbin/upload.v2.yml b/tests/httpbin/upload.v2.yml deleted file mode 100644 index 1f96d037..00000000 --- a/tests/httpbin/upload.v2.yml +++ /dev/null @@ -1,30 +0,0 @@ -config: - name: test upload file with httpbin - base_url: ${get_httpbin_server()} - -teststeps: -- - name: upload file - variables: - file_path: "data/test.env" - m_encoder: ${multipart_encoder(file=$file_path)} - request: - url: /post - method: POST - headers: - Content-Type: ${multipart_content_type($m_encoder)} - data: $m_encoder - validate: - - eq: ["status_code", 200] - - startswith: ["content.files.file", "UserName=test"] - -- - name: upload file with keyword - request: - url: /post - method: POST - upload: - file: "data/test.env" - validate: - - eq: ["status_code", 200] - - startswith: ["content.files.file", "UserName=test"] diff --git a/tests/httpbin/upload.yml b/tests/httpbin/upload.yml index a858cb05..1f96d037 100644 --- a/tests/httpbin/upload.yml +++ b/tests/httpbin/upload.yml @@ -1,8 +1,9 @@ -- config: +config: name: test upload file with httpbin base_url: ${get_httpbin_server()} -- test: +teststeps: +- name: upload file variables: file_path: "data/test.env" @@ -17,7 +18,7 @@ - eq: ["status_code", 200] - startswith: ["content.files.file", "UserName=test"] -- test: +- name: upload file with keyword request: url: /post diff --git a/tests/httpbin/validate.yml b/tests/httpbin/validate.yml index 0be60af8..b50547a4 100644 --- a/tests/httpbin/validate.yml +++ b/tests/httpbin/validate.yml @@ -1,8 +1,9 @@ -- config: +config: name: basic test with httpbin base_url: http://httpbin.org/ -- test: +teststeps: +- name: validate response with json path request: url: /get @@ -18,7 +19,7 @@ - "assert status_code == 200" -- test: +- name: validate response with python script request: url: /get diff --git a/tests/locust_tests/demo_locusts.yml b/tests/locust_tests/demo_locusts.yml index 4ae14cde..62ab8d69 100644 --- a/tests/locust_tests/demo_locusts.yml +++ b/tests/locust_tests/demo_locusts.yml @@ -5,14 +5,16 @@ config: base_url: "http://127.0.0.1:5000" testcases: - create user 1000 and check result.: - testcase: testcases/create_user.yml - weight: 2 - variables: - uid: 1000 +- + name: create user 1000 and check result. + testcase: testcases/create_user.yml + weight: 2 + variables: + uid: 1000 - create user 1001 and check result.: - testcase: testcases/create_user.yml - weight: 3 - variables: - uid: 1001 +- + name: create user 1001 and check result. + testcase: testcases/create_user.yml + weight: 3 + variables: + uid: 1001 diff --git a/tests/test_api.py b/tests/test_api.py index 948f629d..1bf1f8b5 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -14,12 +14,6 @@ class TestHttpRunner(ApiServerUnittest): def setUp(self): self.testcase_cli_path = "tests/data/demo_testcase_cli.yml" - self.testcase_file_path_list = [ - os.path.join( - os.getcwd(), 'tests/data/demo_testcase_hardcode.yml'), - os.path.join( - os.getcwd(), 'tests/data/demo_testcase_hardcode.json') - ] testcases = [{ 'config': { 'name': 'testcase description', @@ -223,17 +217,12 @@ class TestHttpRunner(ApiServerUnittest): self.assertIn("records", summary["details"][0]) def test_run_yaml_upload(self): - upload_cases_list = [ - "tests/httpbin/upload.yml", - "tests/httpbin/upload.v2.yml" - ] - for upload_case in upload_cases_list: - summary = self.runner.run(upload_case) - self.assertTrue(summary["success"]) - self.assertEqual(summary["stat"]["testcases"]["total"], 1) - self.assertEqual(summary["stat"]["teststeps"]["total"], 2) - self.assertIn("details", summary) - self.assertIn("records", summary["details"][0]) + summary = self.runner.run("tests/httpbin/upload.yml") + self.assertTrue(summary["success"]) + self.assertEqual(summary["stat"]["testcases"]["total"], 1) + self.assertEqual(summary["stat"]["teststeps"]["total"], 2) + self.assertIn("details", summary) + self.assertIn("records", summary["details"][0]) def test_run_post_data(self): testcases = [ @@ -470,14 +459,6 @@ class TestHttpRunner(ApiServerUnittest): self.assertEqual(summary["details"][1]["stat"]["total"], 1) self.assertEqual(summary["details"][2]["stat"]["total"], 1) - def test_run_testcase_hardcode(self): - for testcase_file_path in self.testcase_file_path_list: - summary = self.runner.run(testcase_file_path) - self.assertTrue(summary["success"]) - self.assertEqual(summary["stat"]["testcases"]["total"], 1) - self.assertEqual(summary["stat"]["teststeps"]["total"], 3) - self.assertEqual(summary["stat"]["teststeps"]["successes"], 3) - def test_run_testcase_template_variables(self): testcase_file_path = os.path.join( os.getcwd(), 'tests/data/demo_testcase_variables.yml') @@ -693,9 +674,7 @@ class TestApi(ApiServerUnittest): def test_testcase_complex_run_suite(self): 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/testcases/create_user.json" ]: tests_mapping = loader.load_cases(testcase_path) testcases = parser.parse_tests(tests_mapping) diff --git a/tests/test_runner.py b/tests/test_runner.py index c724ab60..fe44ff2b 100644 --- a/tests/test_runner.py +++ b/tests/test_runner.py @@ -25,23 +25,6 @@ class TestRunner(ApiServerUnittest): headers = self.get_authenticated_headers() return self.api_client.get(url, headers=headers) - def test_run_single_testcase(self): - testcase_file_path_list = [ - os.path.join( - os.getcwd(), 'tests/data/demo_testcase_hardcode.yml'), - os.path.join( - os.getcwd(), 'tests/data/demo_testcase_hardcode.json') - ] - - for testcase_file_path in testcase_file_path_list: - tests_mapping = loader.load_cases(testcase_file_path) - parsed_testcases = parser.parse_tests(tests_mapping) - parsed_testcase = parsed_testcases[0] - test_runner = runner.Runner(parsed_testcase["config"]) - test_runner.run_test(parsed_testcase["teststeps"][0]) - test_runner.run_test(parsed_testcase["teststeps"][1]) - test_runner.run_test(parsed_testcase["teststeps"][2]) - def test_run_testcase_with_hooks(self): start_time = time.time() diff --git a/tests/testcases/create_user.json b/tests/testcases/create_user.json index 30af7ce8..12f537e9 100644 --- a/tests/testcases/create_user.json +++ b/tests/testcases/create_user.json @@ -1,34 +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." - } +{ + "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": { + "teststeps": [ + { "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." } - } -] \ No newline at end of file + ] +} \ No newline at end of file diff --git a/tests/testcases/create_user.v2.json b/tests/testcases/create_user.v2.json deleted file mode 100644 index 12f537e9..00000000 --- a/tests/testcases/create_user.v2.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "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." - } - ] -} \ No newline at end of file diff --git a/tests/testcases/create_user.v2.yml b/tests/testcases/create_user.v2.yml deleted file mode 100644 index f88dbd8a..00000000 --- a/tests/testcases/create_user.v2.yml +++ /dev/null @@ -1,21 +0,0 @@ -config: - name: "create user and check result." - id: create_user - base_url: "http://127.0.0.1:5000" - variables: - uid: 9001 - device_sn: "TESTCASE_CREATE_XXX" - export: - - session_token - -teststeps: -- - name: setup and reset all (override) for $device_sn. - testcase: testcases/setup.yml - extract: - - session_token -- - name: create user and check result. - variables: - token: $session_token - testcase: testcases/deps/check_and_create.yml diff --git a/tests/testcases/create_user.yml b/tests/testcases/create_user.yml index 9a392438..f88dbd8a 100644 --- a/tests/testcases/create_user.yml +++ b/tests/testcases/create_user.yml @@ -1,5 +1,4 @@ - -- config: +config: name: "create user and check result." id: create_user base_url: "http://127.0.0.1:5000" @@ -9,13 +8,13 @@ export: - session_token -- test: +teststeps: +- name: setup and reset all (override) for $device_sn. testcase: testcases/setup.yml extract: - session_token - -- test: +- name: create user and check result. variables: token: $session_token diff --git a/tests/testcases/deps/check_and_create.yml b/tests/testcases/deps/check_and_create.yml index 8a6b2d0a..243d344b 100644 --- a/tests/testcases/deps/check_and_create.yml +++ b/tests/testcases/deps/check_and_create.yml @@ -1,4 +1,4 @@ -- config: +config: name: "create user and check result." id: create_and_check base_url: "http://127.0.0.1:5000" @@ -6,7 +6,8 @@ uid: 9001 device_sn: "TESTCASE_CREATE_XXX" -- test: +teststeps: +- name: make sure user $uid does not exist api: api/get_user.yml variables: @@ -16,7 +17,7 @@ - eq: ["status_code", 404] - eq: ["content.success", false] -- test: +- name: create user $uid for $device_sn api: api/create_user.yml variables: @@ -28,7 +29,7 @@ - eq: ["status_code", 201] - eq: ["content.success", true] -- test: +- name: check if user $uid exists api: api/get_user.yml variables: diff --git a/tests/testcases/setup.json b/tests/testcases/setup.json index d8690447..bbc2d3ed 100644 --- a/tests/testcases/setup.json +++ b/tests/testcases/setup.json @@ -1,59 +1,43 @@ -[ - { - "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" - } +{ + "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" + ] }, - { - "test": { - "validate": [ - { - "eq": [ - "status_code", - 200 - ] - }, - { - "len_eq": [ - "content.token", - 16 - ] - } - ], + "teststeps": [ + { + "name": "get token (setup)", "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": { + "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" - }, - "api": "api/reset_all.yml", - "name": "reset all users" + } } - } -] \ No newline at end of file + ] +} \ No newline at end of file diff --git a/tests/testcases/setup.v2.json b/tests/testcases/setup.v2.json deleted file mode 100644 index bbc2d3ed..00000000 --- a/tests/testcases/setup.v2.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "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" - } - } - ] -} \ No newline at end of file diff --git a/tests/testcases/setup.v2.yml b/tests/testcases/setup.v2.yml deleted file mode 100644 index d9945928..00000000 --- a/tests/testcases/setup.v2.yml +++ /dev/null @@ -1,32 +0,0 @@ -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 - export: - - 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 diff --git a/tests/testcases/setup.yml b/tests/testcases/setup.yml index ade11425..d9945928 100644 --- a/tests/testcases/setup.yml +++ b/tests/testcases/setup.yml @@ -1,4 +1,4 @@ -- config: +config: name: "setup and reset all." id: setup_and_reset variables: @@ -11,7 +11,8 @@ export: - session_token -- test: +teststeps: +- name: get token (setup) api: api/get_token.yml variables: @@ -24,8 +25,7 @@ validate: - eq: ["status_code", 200] - len_eq: ["content.token", 16] - -- test: +- name: reset all users api: api/reset_all.yml variables: diff --git a/tests/testsuites/create_users.json b/tests/testsuites/create_users.json index d504c99f..de4d5d27 100644 --- a/tests/testsuites/create_users.json +++ b/tests/testsuites/create_users.json @@ -1,22 +1,4 @@ { - "testcases": { - "create user 1001 and check result.": { - "testcase": "testcases/create_user.yml", - "variables": { - "var_d": "$var_c", - "var_c": "${gen_random_string(5)}", - "uid": 1001 - } - }, - "create user 1000 and check result.": { - "testcase": "testcases/create_user.yml", - "variables": { - "var_d": "$var_c", - "var_c": "${gen_random_string(5)}", - "uid": 1000 - } - } - }, "config": { "variables": { "device_sn": "${gen_random_string(15)}", @@ -25,5 +7,25 @@ }, "name": "create users with uid", "base_url": "http://127.0.0.1:5000" - } + }, + "testcases": [ + { + "name": "create user 1000 and check result.", + "testcase": "testcases/create_user.yml", + "variables": { + "var_d": "$var_c", + "var_c": "${gen_random_string(5)}", + "uid": 1000 + } + }, + { + "name": "create user 1001 and check result.", + "testcase": "testcases/create_user.yml", + "variables": { + "var_d": "$var_c", + "var_c": "${gen_random_string(5)}", + "uid": 1001 + } + } + ] } \ No newline at end of file diff --git a/tests/testsuites/create_users.v2.json b/tests/testsuites/create_users.v2.json deleted file mode 100644 index 450a27aa..00000000 --- a/tests/testsuites/create_users.v2.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "config": { - "variables": { - "device_sn": "${gen_random_string(15)}", - "var_b": "$var_a", - "var_a": "${gen_random_string(5)}" - }, - "name": "create users with uid", - "base_url": "http://127.0.0.1:5000" - }, - "testcases": [ - { - "name": "create user 1000 and check result.", - "testcase": "testcases/create_user.v2.yml", - "variables": { - "var_d": "$var_c", - "var_c": "${gen_random_string(5)}", - "uid": 1000 - } - }, - { - "name": "create user 1001 and check result.", - "testcase": "testcases/create_user.v2.yml", - "variables": { - "var_d": "$var_c", - "var_c": "${gen_random_string(5)}", - "uid": 1001 - } - } - ] -} \ No newline at end of file diff --git a/tests/testsuites/create_users.v2.yml b/tests/testsuites/create_users.v2.yml deleted file mode 100644 index 8fcdd930..00000000 --- a/tests/testsuites/create_users.v2.yml +++ /dev/null @@ -1,24 +0,0 @@ -config: - name: create users with uid - variables: - device_sn: ${gen_random_string(15)} - var_a: ${gen_random_string(5)} - var_b: $var_a - base_url: "http://127.0.0.1:5000" - -testcases: -- - name: create user 1000 and check result. - testcase: testcases/create_user.v2.yml - variables: - uid: 1000 - var_c: ${gen_random_string(5)} - var_d: $var_c - -- - name: create user 1001 and check result. - testcase: testcases/create_user.v2.yml - variables: - uid: 1001 - var_c: ${gen_random_string(5)} - var_d: $var_c diff --git a/tests/testsuites/create_users.yml b/tests/testsuites/create_users.yml index 25c567a5..0714d82f 100644 --- a/tests/testsuites/create_users.yml +++ b/tests/testsuites/create_users.yml @@ -7,16 +7,18 @@ config: base_url: "http://127.0.0.1:5000" testcases: - create user 1000 and check result.: - testcase: testcases/create_user.yml - variables: - uid: 1000 - var_c: ${gen_random_string(5)} - var_d: $var_c +- + name: create user 1000 and check result. + testcase: testcases/create_user.yml + variables: + uid: 1000 + var_c: ${gen_random_string(5)} + var_d: $var_c - create user 1001 and check result.: - testcase: testcases/create_user.yml - variables: - uid: 1001 - var_c: ${gen_random_string(5)} - var_d: $var_c +- + name: create user 1001 and check result. + testcase: testcases/create_user.yml + variables: + uid: 1001 + var_c: ${gen_random_string(5)} + var_d: $var_c diff --git a/tests/testsuites/create_users_with_parameters.yml b/tests/testsuites/create_users_with_parameters.yml index a134e956..53a87e2e 100644 --- a/tests/testsuites/create_users_with_parameters.yml +++ b/tests/testsuites/create_users_with_parameters.yml @@ -5,11 +5,12 @@ config: base_url: "http://127.0.0.1:5000" testcases: - create user $uid and check result for $device_sn.: - testcase: testcases/create_user.yml - variables: - uid: 1000 - device_sn: TESTSUITE_XXX - parameters: - uid: [101, 102, 103] - device_sn: [TESTSUITE_X1, TESTSUITE_X2] +- + name: create user $uid and check result for $device_sn. + testcase: testcases/create_user.yml + variables: + uid: 1000 + device_sn: TESTSUITE_XXX + parameters: + uid: [101, 102, 103] + device_sn: [TESTSUITE_X1, TESTSUITE_X2]