Linux中Swagger API测试怎么做
导读: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
