response = requests.post(url, json=payload) self.assertEqual(response.status_code, 201)
时间: 2024-05-20 11:18:44 浏览: 132
这段代码使用 Python 的 requests 库向指定的 URL 发送一个 POST 请求,并且发送了一个 JSON 格式的 payload。然后使用 assertEqual 方法断言该请求的返回状态码为 201。通常情况下,HTTP 201 状态码表示服务器成功处理了请求,并且创建了一个新的资源。
相关问题
用python+requests+pytest+ddt+unnitest搭建一套自动化框架
搭建一个基于Python + requests + pytest + ddt + unittest 的自动化测试框架,可以按照以下步骤进行:
1. 安装所需依赖:在你的项目环境中安装 requests、pytest、ddt 和 unittest。
```
pip install requests pytest ddt unittest
```
2. 创建项目结构:在你的项目目录下创建以下文件和文件夹结构:
```
├── tests
│ ├── __init__.py
│ └── test_cases.py
├── data
│ └── test_data.xlsx
└── conftest.py
```
3. 编写测试用例:在 `test_cases.py` 文件中编写你的测试用例,可以使用 `ddt` 来实现数据驱动,示例:
```python
import unittest
import ddt
from data.test_data import TestData
from utils.api_helper import APIClient
@ddt.ddt
class APITestCase(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.client = APIClient()
@ddt.data(*TestData.test_data)
def test_api(self, data):
response = self.client.send_request(data['url'], data['method'], data['payload'])
self.assertEqual(response.status_code, data['expected_status'])
self.assertEqual(response.json(), data['expected_response'])
```
4. 创建测试数据:在 `test_data.xlsx` 文件中创建测试数据,可以使用 `openpyxl` 库来读取 Excel 数据,示例:
```python
import openpyxl
class TestData:
workbook = openpyxl.load_workbook('data/test_data.xlsx')
sheet = workbook['Sheet1']
test_data = []
for row in sheet.iter_rows(min_row=2, values_only=True):
test_data.append({
'url': row[0],
'method': row[1],
'payload': row[2],
'expected_status': row[3],
'expected_response': row[4]
})
```
5. 创建 API 辅助类:在 `api_helper.py` 文件中创建一个 APIClient 类,用于发送 API 请求,示例:
```python
import requests
class APIClient:
def send_request(self, url, method, payload):
if method == 'GET':
response = requests.get(url, params=payload)
elif method == 'POST':
response = requests.post(url, json=payload)
elif method == 'PUT':
response = requests.put(url, json=payload)
elif method == 'DELETE':
response = requests.delete(url)
else:
raise ValueError('Invalid HTTP method')
return response
```
6. 创建 pytest 配置:在 `conftest.py` 文件中配置 pytest,示例:
```python
import pytest
def pytest_addoption(parser):
parser.addoption("--base-url", action="store", default="http://localhost:8000", help="Base URL for API tests")
@pytest.fixture(scope="session")
def base_url(request):
return request.config.getoption("--base-url")
```
7. 运行测试:在命令行中执行以下命令来运行测试用例:
```
pytest -s tests/
```
`-s` 参数用于显示打印信息。
这样,你就搭建了一个基于 Python + requests + pytest + ddt + unittest 的自动化测试框架,可以进行接口测试。你可以根据实际需求进一步扩展和优化这个框架。
阅读全文