mirror of
https://github.com/httprunner/httprunner.git
synced 2026-06-03 06:49:38 +08:00
load_testcases_by_path: return testcase sets list, each testset is corresponding to a file
This commit is contained in:
31
ate/utils.py
31
ate/utils.py
@@ -145,27 +145,28 @@ def load_testcases_by_path(path):
|
|||||||
- absolute/relative file path
|
- absolute/relative file path
|
||||||
- absolute/relative folder path
|
- absolute/relative folder path
|
||||||
- list/set container with file(s) and/or folder(s)
|
- list/set container with file(s) and/or folder(s)
|
||||||
@return all loaded testcases in a list
|
@return testcase sets list, each testset is corresponding to a file
|
||||||
|
[
|
||||||
|
[testcase11, testcase12],
|
||||||
|
[testcase21, testcase22, testcase23]
|
||||||
|
]
|
||||||
"""
|
"""
|
||||||
testcases_list = []
|
|
||||||
|
|
||||||
if isinstance(path, (list, set)):
|
if isinstance(path, (list, set)):
|
||||||
for file_path in set(path):
|
testsets_list = []
|
||||||
_testcases_list = load_testcases_by_path(file_path)
|
|
||||||
for testcase in _testcases_list:
|
|
||||||
testcases_list.append(testcase)
|
|
||||||
|
|
||||||
return testcases_list
|
for file_path in set(path):
|
||||||
|
_testsets_list = load_testcases_by_path(file_path)
|
||||||
|
testsets_list.extend(_testsets_list)
|
||||||
|
|
||||||
|
return testsets_list
|
||||||
|
|
||||||
if not os.path.isabs(path):
|
if not os.path.isabs(path):
|
||||||
path = os.path.join(os.getcwd(), path)
|
path = os.path.join(os.getcwd(), path)
|
||||||
|
|
||||||
if os.path.isfile(path):
|
|
||||||
testcases = load_testcases(path)
|
|
||||||
testcases_list.extend(testcases)
|
|
||||||
|
|
||||||
if os.path.isdir(path):
|
if os.path.isdir(path):
|
||||||
files = load_foler_files(path)
|
files_list = load_foler_files(path)
|
||||||
testcases_list.extend(load_testcases_by_path(files))
|
return load_testcases_by_path(files_list)
|
||||||
|
|
||||||
return testcases_list
|
if os.path.isfile(path):
|
||||||
|
testcases_list = load_testcases(path)
|
||||||
|
return [testcases_list]
|
||||||
|
|||||||
@@ -251,54 +251,59 @@ class TestUtils(ApiServerUnittest):
|
|||||||
self.assertIn(file2, files)
|
self.assertIn(file2, files)
|
||||||
|
|
||||||
def test_load_testcases_by_path_files(self):
|
def test_load_testcases_by_path_files(self):
|
||||||
testcases_list = []
|
testsets_list = []
|
||||||
|
|
||||||
# absolute file path
|
# absolute file path
|
||||||
path = os.path.join(
|
path = os.path.join(
|
||||||
os.getcwd(), 'test/data/simple_demo_no_auth.json')
|
os.getcwd(), 'test/data/simple_demo_no_auth.json')
|
||||||
testcases_list.extend(utils.load_testcases_by_path(path))
|
testset_list = utils.load_testcases_by_path(path)
|
||||||
self.assertEqual(len(testcases_list), 2)
|
self.assertEqual(len(testset_list), 1)
|
||||||
|
self.assertEqual(len(testset_list[0]), 2)
|
||||||
|
testsets_list.extend(testset_list)
|
||||||
|
|
||||||
# relative file path
|
# relative file path
|
||||||
path = 'test/data/simple_demo_no_auth.yml'
|
path = 'test/data/simple_demo_no_auth.yml'
|
||||||
testcases_list.extend(utils.load_testcases_by_path(path))
|
testset_list = utils.load_testcases_by_path(path)
|
||||||
self.assertEqual(len(testcases_list), 4)
|
self.assertEqual(len(testset_list), 1)
|
||||||
|
self.assertEqual(len(testset_list[0]), 2)
|
||||||
|
testsets_list.extend(testset_list)
|
||||||
|
|
||||||
# list/set container with file(s)
|
# list/set container with file(s)
|
||||||
path = [
|
path = [
|
||||||
os.path.join(os.getcwd(), 'test/data/simple_demo_no_auth.json'),
|
os.path.join(os.getcwd(), 'test/data/simple_demo_no_auth.json'),
|
||||||
'test/data/simple_demo_no_auth.yml'
|
'test/data/simple_demo_no_auth.yml'
|
||||||
]
|
]
|
||||||
testcases_list.extend(utils.load_testcases_by_path(path))
|
testset_list = utils.load_testcases_by_path(path)
|
||||||
self.assertEqual(len(testcases_list), 8)
|
self.assertEqual(len(testset_list), 2)
|
||||||
|
self.assertEqual(len(testset_list[0]), 2)
|
||||||
|
self.assertEqual(len(testset_list[1]), 2)
|
||||||
|
testsets_list.extend(testset_list)
|
||||||
|
self.assertEqual(len(testsets_list), 4)
|
||||||
|
|
||||||
for testcase in testcases_list:
|
for testset in testsets_list:
|
||||||
testcase = testcase["test"]
|
for testcase in testset:
|
||||||
self.assertIn('name', testcase)
|
testcase = testcase["test"]
|
||||||
self.assertIn('request', testcase)
|
self.assertIn('name', testcase)
|
||||||
self.assertIn('response', testcase)
|
self.assertIn('request', testcase)
|
||||||
self.assertIn('url', testcase['request'])
|
self.assertIn('response', testcase)
|
||||||
self.assertIn('method', testcase['request'])
|
self.assertIn('url', testcase['request'])
|
||||||
|
self.assertIn('method', testcase['request'])
|
||||||
|
|
||||||
def test_load_testcases_by_path_folder(self):
|
def test_load_testcases_by_path_folder(self):
|
||||||
testcases_list_1 = []
|
|
||||||
testcases_list_2 = []
|
|
||||||
testcases_list_3 = []
|
|
||||||
|
|
||||||
# absolute folder path
|
# absolute folder path
|
||||||
path = os.path.join(os.getcwd(), 'test/data')
|
path = os.path.join(os.getcwd(), 'test/data')
|
||||||
testcases_list_1.extend(utils.load_testcases_by_path(path))
|
testset_list_1 = utils.load_testcases_by_path(path)
|
||||||
self.assertGreater(len(testcases_list_1), 10)
|
self.assertGreater(len(testset_list_1), 6)
|
||||||
|
|
||||||
# relative folder path
|
# relative folder path
|
||||||
path = 'test/data/'
|
path = 'test/data/'
|
||||||
testcases_list_2.extend(utils.load_testcases_by_path(path))
|
testset_list_2 = utils.load_testcases_by_path(path)
|
||||||
self.assertEqual(len(testcases_list_1), len(testcases_list_2))
|
self.assertEqual(len(testset_list_1), len(testset_list_2))
|
||||||
|
|
||||||
# list/set container with file(s)
|
# list/set container with file(s)
|
||||||
path = [
|
path = [
|
||||||
os.path.join(os.getcwd(), 'test/data'),
|
os.path.join(os.getcwd(), 'test/data'),
|
||||||
'test/data/'
|
'test/data/'
|
||||||
]
|
]
|
||||||
testcases_list_3.extend(utils.load_testcases_by_path(path))
|
testset_list_3 = utils.load_testcases_by_path(path)
|
||||||
self.assertEqual(len(testcases_list_3), 2 * len(testcases_list_1))
|
self.assertEqual(len(testset_list_3), 2 * len(testset_list_1))
|
||||||
|
|||||||
Reference in New Issue
Block a user