当使用 `requests` 库进行接口自动化测试时,以下是一些详细的步骤和方法总结:
1. **安装 `requests` 库**:首先,确保你已经安装了 `requests` 库。可以使用 `pip` 命令进行安装:`pip install requests`。
2. **导入库**:在测试脚本的开头,导入 `requests` 库:`import requests`。
3. **发送 GET 请求**:使用 `requests.get(url, params=None, headers=None)` 方法发送 GET 请求。其中,`url` 是目标 URL,`params` 是可选的查询参数,`headers` 是可选的请求头部。示例:`response = requests.get('https://api.example.com')`。
4. **发送 POST 请求**:使用 `requests.post(url, data=None, json=None, headers=None)` 方法发送 POST 请求。其中,`url` 是目标 URL,`data` 是可选的表单数据,`json` 是可选的 JSON 数据,`headers` 是可选的请求头部。示例:`response = requests.post('https://api.example.com/login', data={'username': 'testuser', 'password': 'testpass'})`。
5. **处理响应**:`response` 对象包含了服务器返回的响应信息。你可以使用以下方法和属性来处理响应:
- `response.status_code`:获取响应的状态码。
- `response.text`:获取响应的文本内容。
- `response.json()`:将响应的 JSON 数据解析为 Python 字典或列表。
- `response.headers`:获取响应的头部信息。
- `response.cookies`:获取响应的 cookie。
6. **设置请求头部**:使用 `headers` 参数可以设置请求的头部信息。示例:`headers = {'User-Agent': 'Mozilla/5.0'}`。
7. **处理请求参数**:使用 `params` 参数可以设置请求的查询参数。示例:`params = {'key': 'value'}`。
8. **处理请求体数据**:对于 POST 请求,可以使用 `data` 参数传递表单数据,或使用 `json` 参数传递 JSON 数据。
9. **处理请求超时**:使用 `timeout` 参数可以设置请求的超时时间(以秒为单位)。示例:`response = requests.get('https://api.example.com', timeout=5)`。
10. **处理异常**:在进行网络请求时,可能会遇到各种异常。你可以使用 `try-except` 块来捕获异常并处理错误情况。例如:
```python
try:
response = requests.get('https://api.example.com')
response.raise_for_status() # 检查响应的状态码
except requests.exceptions.RequestException as e:
print('请求发生异常:', e)
```
11. **处理身份验证**:如果接口需要身份验证,可以使用 `auth` 参数传递用户名和密码,或使用其他身份验证方式。示例:`response = requests.get('https://api.example.com', auth=('username', 'password'))`。
12. **处理会话状态**:如果需要在多个请求之间保持会话状态,可以使用 `Session()` 对象。创建 `Session()` 对象后,可以使用该对象发送多个请求,并在请求之间共享 cookie 和身份验证信息。