想象一下这样的场景,您的初创公司开始受到关注。用户数突然增加!现在,用户数量不断从 10 个增加到 100 个,并且已经使用您的应用程序相当长一段时间了。单击一些按钮,使用一些功能,向后端服务器发出请求......
在这种情况下你不希望的是毫无准备。您希望确保您的应用程序对用户可靠并且可用。这就是测试的用武之地,我们在这里讨论的是一种适合测试这种场景的特定类型的测试,负载测试。
在本指南中,我们将重点关注使用 FastAPI 及其自动 OpenAPI 规范生成来简化生成用于负载测试的 Postman 集合的过程。最后,您将了解如何利用 FastAPI 的 OpenAPI 规范和 Postman 大规模测试您的应用程序。
FastAPI 具有内置的 OpenAPI 支持,可以轻松记录和测试您的 API。通过将 FastAPI 与 Postman 结合,您可以:
FastAPI 和 Postman 之间的协同作用使开发人员能够快速模拟真实的流量场景并识别应用程序中的瓶颈。
确保您的 FastAPI 应用程序在本地或服务器上运行。例如:
from fastapi import FastAPI app = FastAPI() @app.get("/items/{item_id}") def read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q} if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8000)
服务器启动时,OpenAPI JSON端点将在http://127.0.0.1:8000/openapi.json可用。
打开浏览器并导航到 http://127.0.0.1:8000/openapi.json 以确保 OpenAPI JSON 可以访问。
您可以使用浏览器或通过curl在本地保存OpenAPI JSON文件:
curl -o openapi.json http://127.0.0.1:8000/openapi.json
或者只需复制 OpenAPI 端点 URL,http://127.0.0.1:8000/openapi.json。
如果您刚刚复制了端点 URL,则只需将 URL 粘贴到单击 导入
时出现的模式顶部的输入栏即可检查导入的集合以确保所有端点均已正确配置。您还可以根据身份验证或数据管理的需要添加环境变量或脚本。
要模拟真实场景,请修改您的请求以包含动态数据。例如,使用Postman的内置变量或预请求脚本:
预请求脚本示例:
from fastapi import FastAPI app = FastAPI() @app.get("/items/{item_id}") def read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q} if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8000)
负载示例:
curl -o openapi.json http://127.0.0.1:8000/openapi.json
您还可以使用 $randomInt 等内置脚本来生成随机值。
使用内置脚本的示例用例:
pm.variables.set("random_id", Math.floor(Math.random() * 10000));这个内置脚本将在每个请求中返回 0-1000 之间的随机值。
3.2 配置集合中的变量
?步骤 4:使用 Postman 的 Collection Runner 运行性能测试
单击“运行”开始性能测试。 Postman 将显示实时性能指标,例如平均响应时间、错误率和吞吐量。
测试完成后,分析结果以确定性能瓶颈:
Postman 提供详细的指标,并允许您比较多个测试运行以跟踪性能随时间的变化。
通过利用FastAPI的OpenAPI规范和Postman的性能测试功能,您可以有效地模拟用户流量并识别潜在的性能问题。这种方法使您能够确保 FastAPI 应用程序在不同的负载条件下保持稳健和响应。
测试愉快!
以上是使用 FastAPI 和 Postman 进行负载测试:综合指南的详细内容。更多信息请关注PHP中文网其他相关文章!