pytest接口自动化测试源码
时间: 2025-02-10 22:59:40 浏览: 38
### pytest 接口自动化测试源码示例
为了实现接口自动化的测试,pytest 是 Python 生态中最受欢迎的选择之一。下面提供了一个简单的例子来展示如何利用 `requests` 库配合 pytest 进行 HTTP 请求的发送并验证响应。
#### 安装依赖库
首先安装必要的包:
```bash
pip install requests pytest
```
#### 编写测试案例
创建文件名为 `test_api.py` 的测试脚本:
```python
import requests
def test_user_registration():
url = "http://example.com/api/register"
payload = {
'email': '[email protected]',
'password': 'StrongPassword!1A'
}
response = requests.post(url, json=payload)
assert response.status_code == 201, f"Expected status code 201 but got {response.status_code}"
data = response.json()
assert 'id' in data, "Response should contain user id"
def test_password_strength_validation():
url = "http://example.com/api/validate-password"
weak_payloads = [
{'password': 'weak'}, # Too short
{'password': 'onlylowercase'}, # No uppercase or special chars
{'password': 'ONLYUPPERCASE'} # No lowercase letters
]
strong_payload = {'password': 'ValidPassw0rd!'}
for wp in weak_payloads:
resp_weak = requests.post(url, json=wp)
assert resp_weak.status_code != 200, \
f"Weak password validation failed with payload: {wp}"
resp_strong = requests.post(url, json=strong_payload)
assert resp_strong.status_code == 200, \
f"Strong password did not pass validation: {strong_payload}"
if __name__ == "__main__":
import pytest
pytest.main([__file__])
```
此代码片段定义了两个函数用于测试用户的注册功能和密码强度校验逻辑[^1]。第一个测试用例模拟了一次成功的用户注册请求,并检查返回的状态码是否为预期值 (即成功创建资源后的HTTP状态码201),同时也确认服务器端确实分配给了新用户一个唯一的ID。第二个测试则尝试提交几个不符合安全策略规定的弱密码组合,确保这些情况下的API调用不会被接受;与此同时还检验了一个符合标准的强大密码能否顺利通过审核。
阅读全文
相关推荐


















