pytest接口用例
时间: 2024-12-30 18:21:06 浏览: 4
### 如何使用 Pytest 编写 API 测试用例
#### 准备工作
为了编写有效的API测试用例,需先安装必要的库。通常情况下会依赖`requests`库来进行HTTP请求操作。
```bash
pip install requests pytest
```
#### 创建简单的 API 测试脚本
创建一个新的 Python 文件作为测试文件,例如 `test_api.py` 。此文件中的函数名应以 test_ 开头以便被 Pytest 自动识别为测试案例[^1]。
#### 实现具体功能的测试用例
下面是一个具体的例子展示如何构建一个针对RESTful风格Web服务GET方法的简单测试:
```python
import requests
def test_get_users_status_code():
response = requests.get('https://jsonplaceholder.typicode.com/users')
assert response.status_code == 200, "Unexpected Response Code"
```
这段代码实现了向指定URL发起 GET 请求并检查 HTTP 响应状态码是否等于预期值 (即成功响应的状态码)[^2]。
对于更复杂的场景,则可以按照如下结构扩展测试逻辑:
1. **声明是测试用例**
定义以 `test_` 开始的方法名称表示这是一个测试单元。
2. **调用要测试的接口**
利用 `requests` 库发送各种类型的 HTTP 请求给目标服务器端点。
3. **准备测试数据**
如果需要的话,在这里设置好待传入参数以及期望接收到的结果形式。
4. **断言**
对实际获得的数据同预先设定的标准做比较分析,判断两者之间是否存在差异[^5]。
#### 处理多个测试用例的情况
当面对众多不同需求下的测试情形时,可以通过合理组织目录结构、运用 fixture 或者 parameterize 来简化管理和维护过程[^4]。
例如利用 `@pytest.mark.parametrize()` 装饰器可以让单个测试函数覆盖多种输入组合情况:
```python
@pytest.mark.parametrize("endpoint", [
('/posts'),
('/comments'),
('/albums')
])
def test_check_endpoints(endpoint):
url = f'https://jsonplaceholder.typicode.com{endpoint}'
resp = requests.get(url)
assert resp.ok is True
```
上述实例展示了如何一次性验证多个资源路径的有效性而无需重复书写相似度高的多份独立测试代码片段。
阅读全文