mohanzb 2020-02-21
上篇已经讲了接口测试的做法,利用的是postman工具,工具始终是工具,它有一定的局限性,比如测试数据的存放,断言的方法以及上下接口关联使用灵活性。python对http接口封装了一个requests库可以调用接口,结合unittest单元测试框架可以完美测试。
import unittest import requests class GetEventListTest(unittest.TestCase): """查询发布会接口测试""" def setUp(self) -> None: self.url = ‘http://127.0.0.1:8000/api/get_event_list/‘ def test_get_event_null(self): """发布会id为空""" r = requests.get(self.url,params={‘eid‘:‘‘}) result = r.json() print(result) self.assertEqual(result[‘status‘],10021) self.assertEqual(result[‘message‘],‘参数错误‘) def test_get_event_error(self): """发布会id不存在""" r = requests.get(self.url,params={‘eid‘:‘333‘}) result = r.json() self.assertEqual(result[‘status‘],10023) self.assertEqual(result[‘message‘],‘查询对象结果为空‘) def test_get_event_success(self): """发布会查询成功""" r = requests.get(self.url,params={‘eid‘:‘1‘}) result = r.json() print(result,333) self.assertEqual(result[‘status‘],200) self.assertEqual(result[‘message‘],‘查询成功‘) if __name__ == ‘__main__‘: unittest.main()
... {‘status‘: 10021, ‘message‘: ‘参数错误‘} {‘status‘: 200, ‘message‘: ‘查询成功‘, ‘data‘: {‘name‘: ‘苹果4‘, ‘limit‘: 10, ‘status‘: True, ‘address‘: ‘上海浦东‘, ‘start_time‘: ‘2020-02-24T00:00:00‘}} 333 ---------------------------------------------------------------------- Ran 3 tests in 0.025s OK
以上就是集成unittest做接口测试的简单实例。