上个文章是用jmeter测试接口
jmeter可以用来做接口测试,requests模块也可以做,个人更喜欢用request模块做接口测试,几行代码就搞定一个接口,比使用jmeter方便多了,废话少说。下面我用python requests模块来测试接口,代码如下:
import unittest
import requests,json
class ApiTest(unittest.TestCase):
@classmethod
def setUpClass(self):
self.url = 'http://xxxxxxxxxxxxx'
@classmethod
def tearDown(self):
pass
def test_1_register(self):
'''注册接口'''
path = '/xxxxx'
data = {'username':'shawnxie','password':'123456',
'password_confirmation':'123456'}
r = requests.post(url=self.url + path, json=data)
self.assertEqual(r.status_code,200)
self.assertEqual(r.json()['username'],'shawnxie')
def test_2_login(self):
'''登录接口'''
login_path = '/xxxxx'
data={'username': 'shawnxie', 'password': '123456'}
r_login = requests.post(url=self.url + login_path, json=data)
self.assertEqual(r_login.status_code, 200)
self.assertEqual(r_login.json()['username'], 'shawnxie')
def getToken(self):
'''获取token'''
login_path = '/xxxxxx'
data = {'username': 'shawnxie', 'password': '123456'}
R = requests.post(url=self.url + login_path, json=data)
return R.json()['token']
def test_3_get_allTask(self):
'''获取所有任务接口'''
get_allTask_path = '/xxxxxx'
get_allTask = requests.get(url=self.url + get_allTask_path, headers={'Authorization': 'Bearer ' + self.getToken()})
self.assertEqual(get_allTask.status_code, 200)
def test_4_create_task(self):
'''创建任务接口'''
create_task_path = '/xxxxx'
data = {'title': 'shawnxie', 'desc': 'shawnxie'}
create_task = requests.post(url=self.url + create_task_path, json=data,
headers={'Authorization': 'Bearer ' + self.getToken()})
self.assertEqual(create_task.status_code, 200)
def getId(self):
'''获取任务id'''
create_task_path = '/xxxxxxx'
data = {'title': 'shawnxie', 'desc': 'shawnxie'}
create_task = requests.post(url=self.url + create_task_path, json=data,
headers={'Authorization': 'Bearer ' + self.getToken()})
return create_task.json()['id']
def test_5_DeleteTask(self):
delete_task_path = '/xxxxxx/:{0}'.format(self.getId())
delete_task = requests.delete(url=self.url + delete_task_path, headers={'Authorization': 'Bearer ' + self.getToken()})
self.assertEqual(delete_task.status_code, 200)
def test_6_putTask(self):
put_task_path = '/xxxxx/{0}'.format(self.getId())
put_task = requests.put(url=self.url + put_task_path, headers={'Authorization': 'Bearer ' + self.getToken()})
self.assertEqual(put_task.status_code, 200)
if __name__ == '__main__':
unittest.main(verbosity=2)