2. 环境准备:Python环境搭建、虚拟环境配置、requests库与pytest库安装
在开始信用评分API回放验证之前,必须搭建一个干净、可复现的Python开发环境。本章将指导你完成从Python解释器安装到依赖库配置的全过程,确保后续所有实验步骤一致、无冲突。
2.1 Python版本选择与安装
信用评分API回放验证依赖Python 3.8+的特性(如类型注解、f-string、异步支持)。推荐使用Python 3.10或3.11,这两个版本在兼容性和性能上达到最佳平衡。
| Python版本 | 推荐场景 | 注意事项 |
|---|---|---|
| 3.8 | 企业遗留环境 | 缺少match语句,部分新库可能放弃支持 |
| 3.9 | 兼容性优先 | 性能与3.10接近,但生态逐步迁移 |
| 3.10 | 课程推荐 | 结构模式匹配、更优错误提示,主流库全面支持 |
| 3.11 | 追求性能 | 启动速度提升10-60%,适合大规模回放 |
验证安装:打开终端执行
python --version,确认输出为 Python 3.10.x 或 3.11.x。若系统同时存在Python 2,请使用 python3 --version 区分。
2.2 虚拟环境配置
虚拟环境隔离项目依赖,避免不同项目间的包版本冲突。Python 3.3+内置venv模块,无需额外安装。
2.2.1 创建虚拟环境
# 在项目根目录执行
python -m venv venv
# 激活虚拟环境(Windows)
venv\Scripts\activate
# 激活虚拟环境(macOS/Linux)
source venv/bin/activate
激活后,终端提示符前会出现 (venv) 标识,表示当前处于隔离环境。
2.2.2 虚拟环境核心操作
- 退出环境:执行
deactivate - 查看已安装包:
pip list - 导出依赖清单:
pip freeze > requirements.txt - 从清单安装:
pip install -r requirements.txt
常见陷阱:不要将虚拟环境文件夹(venv)提交到Git仓库。在项目根目录创建
.gitignore 文件,添加 venv/ 和 __pycache__/ 条目。
2.3 核心库安装:requests 与 pytest
本课程依赖两个核心Python库:requests(HTTP客户端)和 pytest(测试框架)。
2.3.1 安装命令
# 确保虚拟环境已激活
pip install requests pytest
# 验证安装
pip show requests
pip show pytest
2.3.2 库版本与用途
| 库名 | 最低版本 | 核心用途 | 替代方案 |
|---|---|---|---|
| requests | 2.28.0 | 发送HTTP请求、处理响应、会话管理 | httpx(异步)、urllib(标准库) |
| pytest | 7.4.0 | 测试用例组织、断言、夹具、参数化 | unittest(标准库)、nose2 |
为什么选择requests + pytest?
- requests:API回放的核心——发送请求、记录响应、对比差异,API设计简洁直观。
- pytest:支持fixture管理测试数据、参数化批量回放、插件生态丰富(如pytest-html生成报告)。
- requests:API回放的核心——发送请求、记录响应、对比差异,API设计简洁直观。
- pytest:支持fixture管理测试数据、参数化批量回放、插件生态丰富(如pytest-html生成报告)。
2.4 环境验证:快速冒烟测试
安装完成后,执行以下脚本验证环境是否正常工作:
# test_env.py
import requests
import pytest
def test_requests_available():
"""验证requests库可正常导入并发送GET请求"""
response = requests.get("https://httpbin.org/get")
assert response.status_code == 200
print(f"✅ requests 可用,状态码: {response.status_code}")
def test_pytest_assertion():
"""验证pytest断言机制"""
expected = {"status": "ok"}
actual = {"status": "ok"}
assert expected == actual
print("✅ pytest 断言正常")
if __name__ == "__main__":
pytest.main([__file__, "-v"])
在终端执行 python test_env.py,若输出包含两个通过的测试用例,则环境准备完成。
2.5 环境架构总览
下图展示了从操作系统到API回放验证的完整技术栈层次:
2.6 常见问题与解决方案
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
pip: command not found |
Python未加入PATH或未安装pip | 重新安装Python并勾选“Add Python to PATH” |
ModuleNotFoundError: No module named 'requests' |
未激活虚拟环境或未安装包 | 执行 source venv/bin/activate 后重新 pip install requests |
SSL: CERTIFICATE_VERIFY_FAILED |
系统证书过期或缺失 | 执行 pip install --upgrade certifi 或设置 verify=False(仅测试) |
| 虚拟环境激活后仍使用系统Python | PATH顺序错误或未正确激活 | 检查 which python 路径是否指向venv内的解释器 |
最佳实践:每次开始新实验前,先执行
pip list 确认当前环境包含requests和pytest。建议将依赖固定到 requirements.txt:pip freeze | grep -E "requests|pytest" > requirements.txt
2.7 本章小结
完成本章操作后,你应具备:
- 一个可运行的Python 3.10+解释器
- 一个隔离的虚拟环境(venv)
- 已安装requests和pytest库
- 通过冒烟测试验证环境正确性