首页主机资讯Linux中Swagger API测试怎么做

Linux中Swagger API测试怎么做

时间2025-11-24 08:26:03发布访客分类主机资讯浏览1226
导读:Linux下Swagger API测试实操指南 一 手动调试与快速验证 使用容器快速起一个本地文档与调试环境: 启动编辑器:docker run -d -p 38080:8080 swaggerapi/swagger-editor:v4...

Linux下Swagger API测试实操指南

一 手动调试与快速验证

  • 使用容器快速起一个本地文档与调试环境:
    • 启动编辑器:docker run -d -p 38080:8080 swaggerapi/swagger-editor:v4.6.0
    • 启动UI:docker run -d -p 38081:8080 swaggerapi/swagger-ui:v4.15.5
    • 浏览器访问:Editor 在 http://localhost:38080,UI 在 http://localhost:38081,在 UI 中点击 Try it out 直接发送请求进行验证。
  • 直接用命令行工具测试(适合无头环境、CI 场景):
    • GET 查询:curl “http://host:port/client/selectByPage?limit=10& page=1”
    • POST 表单:curl -X POST http://host:port/factory/insert -H “Content-Type: application/x-www-form-urlencoded” -d “factoryName=Test& no=123”
    • POST JSON:curl -X POST http://host:port/material/selectAll -H “Content-Type: application/json” -d ‘{ “factory”:“Test”,“materialName”:“Mat”,“offset”:0,“page”:1,“pageSize”:10} ’
    • 上传文件:curl -X POST http://host:port/api/all/order/money -F “file=@/path/file” -F “startTime=2020-01-01” -F “endTime=2020-06-30”。

二 自动化测试方案

  • 方案对比与命令示例
方案 适用场景 关键命令或步骤 输出与报告
Swagger Codegen 生成客户端 + 测试框架 需要强类型客户端、与业务代码深度集成 java -jar swagger-codegen-cli.jar generate -i http://localhost:8080/v2/api-docs -l python -o ./client;再用 pytest/requests 编写用例并运行 单元/集成测试结果,可接入 pytest 报告
Postman Collection + Newman 已有或能导出 Postman Collection,强调团队协作与报告 newman run collection.json -r cli,json,html CLI/JSON/HTML 报告,适合 CI/CD
Dredd 直接对标 OpenAPI 契约,做契约测试 npm i -g dredd;dredd swagger.yaml http://localhost:8080 契约校验结果,定位偏离
JMeter 脚本生成 + 执行 需要并发/性能与复杂场景编排 解析 Swagger 生成 JMeter 脚本(可用 SwaggerParser 提取路径/参数),再用 JMeter 执行 JMeter 报告(聚合/图形)
  • 要点提示
    • 契约测试(如 Dredd)验证“实现是否符合规范”,功能/回归测试(如 Codegen+pytest/Newman)验证“业务是否正确”。
    • CI/CD 中将上述命令放入流水线,保存并归档报告,便于回溯与门禁控制。

三 在CI CD中落地

  • 基本流程
    • 拉取规范与代码 → 启动被测服务(如在容器中) → 运行测试(Newman/Dredd/Codegen+pytest/JMeter) → 生成并归档报告 → 根据阈值判定成功或失败。
  • 最小示例(Newman)
    • 步骤:导出 Postman Collection → 在流水线执行:newman run your-swagger-collection.json -r cli,json,html → 归档 html 报告作为构件。
  • 最小示例(Dredd)
    • 步骤:dredd swagger.yaml http://localhost:8080 → 以退出码判定(0 为通过),失败则阻断合并。
  • 报告与质量门禁
    • 选择 HTML/JSON 报告,结合 JUnit XML 接入 Jenkins/GitHub Actions 质量门禁,失败即阻断发布。

四 常见问题与排查

  • 规范与服务器地址不一致
    • Swagger UI 中确认 Servers 配置;用 curl 先对 /v2/api-docs 或 /v3/api-docs 做健康检查,确保能取到规范与连通后端。
  • 认证与鉴权
    • 在 UI 的 Authorize 填入 Bearer Token/API Key;命令行使用 -H “Authorization: Bearer ”。
  • 数据与环境
    • 契约测试用 Mock 或专设 测试库;功能测试用独立 测试数据,避免污染生产/开发数据。
  • 报告与可追溯
    • 固定 时间戳/构建号 作为报告名前缀,便于回溯;在报告中记录 规范版本Commit ID

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux中Swagger API测试怎么做
本文地址: https://pptw.com/jishu/754097.html
ubuntu系统监控如何实现 ubuntu脚本编写有哪些技巧

游客 回复需填写必要信息