接前文:
[1] Django-数据库配置、数据序列化、视图创建、URL路由配置、API编辑操作
[2] Django接入Swagger,生成Swagger接口文档-操作解析
当Restful接口开发完成后,即可对所开发的接口进行测试。接口测试的工具有:Python、Postman、JMeter,本次使用Python脚本(requests+unittest)
测试类型
1)功能测试:增、删、改、查
2)异常测试:未授权、参数异常
在API目录下面新建一个test_unittest.py
,代码实现如下:
tests_unittest.py
import requests
import unittest
class UserTest(unittest.TestCase):
def setUp(self):
self.base_url = 'http://127.0.0.1:8000/users'
self.auth = ('admin','admin123')
def test_get_user(self):
r = requests.get(self.base_url+'/1/',auth=self.auth)
result = r.json()
self.assertEqual(result['username'],'admin')
self.assertEqual(result['email'],'admin@666.com')
def test_add_user(self):
form_data = {'username':'Test00003','email':'Test00003@666.com','groups':'http://127.0.0.1:8000/groups/2/'}
r = requests.post(self.base_url+'/',data=form_data,auth=self.auth)
result = r.json()
self.assertEqual(result['username'],'Test00003')
self.assertEqual(result['email'],'Test00003@666.com')
def test_update_user(self):
form_data = {'email':'new001@111.com'}
r = requests.patch(self.base_url+'/2/',data=form_data,auth=self.auth)
result = r.json()
self.assertEqual(result['email'],'new001@111.com')
# def test_delete_user(self):
# r = requests.delete(self.base_url+'/3/',auth=self.auth)
# self.assertEqual(r.status_code,404)
def test_no_auth(self):
r = requests.get(self.base_url)
result = r.json()
self.assertEqual(result['detail'],'Authentication credentials were not provided.')
if __name__ == '__main__':
unittest.main()
网友评论