python接口自动化封装
时间: 2023-10-07 21:10:55 浏览: 49
Python 接口自动化封装可以通过使用 Python 提供的 requests 库来实现。
首先,可以创建一个 API 封装类,用于处理所有接口请求。该类应该包含发送 GET、POST、PUT、DELETE 等请求的方法,并且应该对每个请求返回的结果进行处理和解析。下面是一个示例 API 封装类的代码:
```python
import requests
import json
class API():
def __init__(self, base_url):
self.base_url = base_url
def get(self, path, params=None):
url = self.base_url + path
response = requests.get(url, params=params)
return self._parse_response(response)
def post(self, path, data=None):
url = self.base_url + path
headers = {'Content-Type': 'application/json'}
response = requests.post(url, headers=headers, data=json.dumps(data))
return self._parse_response(response)
def put(self, path, data=None):
url = self.base_url + path
headers = {'Content-Type': 'application/json'}
response = requests.put(url, headers=headers, data=json.dumps(data))
return self._parse_response(response)
def delete(self, path):
url = self.base_url + path
response = requests.delete(url)
return self._parse_response(response)
def _parse_response(self, response):
try:
response.raise_for_status()
return response.json()
except requests.exceptions.HTTPError as error:
print(f"HTTP error occurred: {error}")
except json.decoder.JSONDecodeError as error:
print(f"JSON decoding error occurred: {error}")
```
接下来,可以创建一个测试类,用于测试 API 封装类中的方法。该测试类应该包含测试用例,用于测试每个方法是否按预期工作。
```python
import unittest
from api import API
class TestAPI(unittest.TestCase):
def setUp(self):
self.api = API("http://localhost:8000")
def test_get(self):
response = self.api.get("/users/")
self.assertIsNotNone(response)
def test_post(self):
data = {"username": "testuser", "password": "testpassword"}
response = self.api.post("/users/", data)
self.assertEqual(response["username"], "testuser")
def test_put(self):
data = {"username": "testuser", "password": "newtestpassword"}
response = self.api.put("/users/1/", data)
self.assertEqual(response["password"], "newtestpassword")
def test_delete(self):
response = self.api.delete("/users/1/")
self.assertIsNone(response)
```
最后,可以使用 unittest 模块来运行测试用例。
```python
if __name__ == '__main__':
unittest.main()
```
这就是一个简单的 Python 接口自动化封装的示例。可以根据实际需求对其进行修改和扩展。