1.基础测试方法
1 | from fastapi import FastAPI |
- 使用
TestClient进行同步测试,验证常规请求的响应状态和内容 - 流程图展示基础测试流程:
graph TD A[初始化TestClient] --> B[发送模拟请求] B --> C[接收响应数据] C --> D[断言验证结果]
2.异步事件测试
1 | import pytest |
- 通过
AsyncClient配合ASGITransport测试异步生命周期事件 - 需使用
pytest.mark.anyio标记异步测试函数 - 支持测试模型加载、数据库连接池初始化等预启动逻辑
3.生命周期事件验证
1 | from contextlib import asynccontextmanager |
- 使用异步上下文管理器验证启动/关闭阶段的资源管理
- 可结合
pytest断言验证资源加载和释放的正确性
4.生产环境测试建议
性能基准测试:
- 使用
pytest-benchmark测量事件处理耗时 - 建议模型加载时间<5秒(基于1GB内存占用)
- 使用
错误场景覆盖:
1
2
3
4
5def test_failed_initialization():
with pytest.raises(RuntimeError):
async def broken_lifespan():
raise RuntimeError("Init failed")
app = FastAPI(lifespan=broken_lifespan)验证初始化失败时的应用状态
分布式事件测试:
- 使用
fastapi-events库测试跨服务事件分发 - 验证消息队列的消费延迟(建议<200ms)
- 使用
测试命令示例:
1
2
3
4
5 # 运行所有测试用例
pytest tests/ -v
# 生成覆盖率报告
pytest --cov=app --cov-report=html