本次在原有的基础上, 封装了 http 请求, 加入了 ddt 做数据驱动
tools 新增 http_requests 方法
代码如下:
- import requests
- import JSON
- class HttpRequests:
- def http_requests(self,method, url, data=None, expect=None, title=None, headers=None):
- if method.upper() == 'POST':
- res = requests.post(url=url, JSON=data, headers=headers)
- try:
- return res.JSON()
- except Exception as e:
- return JSON.loads(res.text)
- elif method.upper() == 'GET':
- res = requests.get(url=url, headers=headers)
- try:
- return res.JSON()
- except Exception as e:
- return JSON.loads(res.text)
- if __name__ == '__main__':
- from gongdan.tools.get_data import Do_Excel
- from gongdan.tools import login
- headers = {"Content-Type": "application/json",
- 'Accept': "application/json, text/plain, */*",
- "passport": login.login()
- }
- test_data = Do_Excel(r'../test_data/test_data.xlsx', 'form').get_data()
- print(test_data[1]['url'])
- print(test_data[1]['data'])
- print(test_data[1])
- res = HttpRequests().http_requests(method=test_data[1]['method'], url=test_data[1]['url'],
- data=JSON.loads(test_data[1]['data']),
- headers=headers)
- # res1 = requests.post(url=test_data[2]['url'],
- # JSON=JSON.loads(test_data[2]['data']),
- # headers=headers)
- print(res)
写用例引入了 ddt 来处理数据, 代码如下:
- import unittest
- import JSON
- from gongdan.tools.get_data import Do_Excel
- from gongdan.tools import login
- from gongdan.tools.http_requests import HttpRequests
- from ddt import ddt, data
- test_data = Do_Excel(r'../test_data/test_data.xlsx', 'form').get_data()
- @ddt
- class TestForm(unittest.TestCase):
- def setUp(self):
- self.headers = {"Content-Type": "application/json",
- 'Accept': "application/json, text/plain, */*",
- "passport": login.login()
- }
- @data(*test_data)
- def test_form_api(self,item):
- res = HttpRequests().http_requests(method=item['method'], url=item['url'],
- data=JSON.loads(item['data']),
- headers=self.headers)
- self.assertEqual(item['expect'], res['success'])
测试数据:
测试结果:
来源: http://www.bubuko.com/infodetail-3319510.html