用途:对 Databricks App(假定使用 MLflow AgentServer,暴露 POST /invocations 流式接口,SSE 以 [DONE] 结束)做负载测试,找出最大 QPS,并对比不同计算规格与 worker 数量的吞吐表现。
主要能力:locustfile.py 发送流式请求、解析 SSE、统计 TTFT,使用 M2M OAuth 自动刷新令牌,并按 StepRampShape 逐级加压;run_load_test.py 作为 CLI 编排多个 app URL、健康检查、预热与结果保存;dashboard_template.py 生成含 KPI、QPS/延迟/TTFT 图表和结果表的自包含 HTML 仪表盘。可选模拟 LLM 调用以隔离基础设施吞吐与模型延迟,通过 MOCK_CHUNK_DELAY_MS、MOCK_CHUNK_COUNT 控制。
使用方式:在项目内创建 load-test-scripts/ 目录,放入脚本与 pyproject.toml,执行 cd load-test-scripts/ && uv sync 安装依赖(locust 需固定 <2.40 以规避 RecursionError)。用 databricks apps create/update 配置计算规格,用 DAB 变量传入 --workers 部署多套应用。设置 DATABRICKS_HOST、DATABRICKS_CLIENT_ID、DATABRICKS_CLIENT_SECRET 后运行 uv run run_load_test.py,可传 --app-url、--max-users、--step-size、--step-duration、--dashboard、--run-name 等参数。
适用场景:容量规划、不同规格与 worker 数的性能对比、长时间压测、结合 MLflow 追踪校验错误率与定位模型/工具瓶颈。
限制:假定应用暴露相同的 /invocations 流式契约;长测试建议使用 M2M OAuth;模拟步骤为可选;具体价格、平台支持范围等资料未提供。