utils: testcases loader

This commit is contained in:
httprunner
2017-06-20 19:43:44 +08:00
parent 502f2e4ef7
commit 0fd8f95e34
6 changed files with 141 additions and 0 deletions

43
test/data/demo.json Normal file
View File

@@ -0,0 +1,43 @@
[
{
"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"
},
"cookies": {},
"json": {
"name": "user1",
"password": "123456"
}
},
"response": {
"status_code": 201,
"headers": {
"Content-Type": "application/json"
}
}
},
{
"name": "create user which existed",
"request": {
"url": "http://127.0.0.1:5000/api/users/1000",
"method": "POST",
"headers": {
"content-type": "application/json"
},
"json": {
"name": "user1",
"password": "123456"
}
},
"response": {
"status_code": 500,
"headers": {
"Content-Type": "application/json"
}
}
}
]

29
test/data/demo.yml Normal file
View File

@@ -0,0 +1,29 @@
-
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
json:
name: user1
password: 123456
response:
status_code: 201
headers:
Content-Type: application/json
-
name: create user which existed
request:
url: http://127.0.0.1:5000/api/users/1000
method: POST
headers:
Content-Type: application/json
json:
name: user1
password: 123456
response:
status_code: 500
headers:
Content-Type: application/json

31
test/test_utils.py Normal file
View File

@@ -0,0 +1,31 @@
import os
import unittest
from ate import utils
from ate import exception
class TestUtils(unittest.TestCase):
def test_load_testcases_bad_filepath(self):
testcase_file_path = os.path.join(os.getcwd(), 'test/data/demo')
with self.assertRaises(exception.ParamsError):
utils.load_testcases(testcase_file_path)
def test_load_json_testcases(self):
testcase_file_path = os.path.join(os.getcwd(), 'test/data/demo.json')
testcases = utils.load_testcases(testcase_file_path)
self.assertEqual(len(testcases), 2)
self.assertIn('name', testcases[0])
self.assertIn('request', testcases[0])
self.assertIn('response', testcases[0])
self.assertIn('url', testcases[0]['request'])
self.assertIn('method', testcases[0]['request'])
def test_load_yaml_testcases(self):
testcase_file_path = os.path.join(os.getcwd(), 'test/data/demo.yml')
testcases = utils.load_testcases(testcase_file_path)
self.assertEqual(len(testcases), 2)
self.assertIn('name', testcases[0])
self.assertIn('request', testcases[0])
self.assertIn('response', testcases[0])
self.assertIn('url', testcases[0]['request'])
self.assertIn('method', testcases[0]['request'])