在Linux系统中,可通过Docker快速部署Swagger的可视化工具(Swagger Editor、Swagger UI),或使用命令行工具(如swagger CLI)辅助测试。
Swagger Editor(在线编辑与调试):
拉取镜像并运行容器:
docker pull swaggerapi/swagger-editor:v4.6.0
docker run -d -p 38080:8080 swaggerapi/swagger-editor:v4.6.0
访问http://localhost:38080即可打开编辑器,支持实时预览接口文档。
Swagger UI(可视化测试界面):
拉取镜像并运行容器:
docker pull swaggerapi/swagger-ui:v4.15.5
docker run -d -p 38081:8080 swaggerapi/swagger-ui:v4.15.5
访问http://localhost:38081/swagger-ui.html,通过“Import File”导入swagger.json/swagger.yaml文件,即可查看接口详情。
Swagger命令行工具(可选,用于本地验证):
使用npm全局安装:
npm install -g swagger
可用于验证Swagger文档语法或生成代码。
无论使用Swagger Editor还是Swagger UI,都需要将项目的OpenAPI规范文件(swagger.json或swagger.yaml)导入工具中:
http://localhost:8080/v2/api-docs)。导入配置文件后,可直接在Swagger UI或Editor中测试接口:
/user/query-user-info);{"factory":"TestFactory","no":"123"},点击“Execute”即可验证接口是否返回预期结果。若习惯使用命令行,Linux自带的curl是测试接口的高效工具,支持GET、POST、PUT等多种请求方法:
curl "http://172.16.110.147:9090/client/selectByPage?limit=10&page=1"
curl -X POST "http://172.16.110.147:9090/factory/insert" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "factoryName=TestFactory&no=123&remark=TestRemark"
curl -X POST "http://172.16.110.147:9090/material/selectAll" \
-H "Content-Type: application/json" \
-d '{"factory":"TestFactory","materialName":"TestMaterial","offset":0,"page":1}'
curl -X POST "http://172.16.110.147:9090/api/all/order/money" \
-F "file=@/path/to/file.xlsx" \
-F "startTime=2020-01-01" \
-F "endTime=2020-06-30"
执行后,curl会输出接口的响应结果,便于快速验证。若需要频繁测试或集成到CI/CD流程,可通过以下方式实现自动化:
Swagger Codegen生成测试代码:
使用swagger-codegen-cli生成客户端SDK(如Python、Java),再用测试框架(如pytest、JUnit)编写测试脚本。
示例(生成Python SDK并测试):
wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.44/swagger-codegen-cli-3.0.44.jar -O swagger-codegen-cli.jar
java -jar swagger-codegen-cli.jar generate -i http://localhost:8080/v2/api-docs -l python -o ./generated-client
编写测试脚本(test_api.py):
import requests
def test_get_user():
response = requests.get('http://localhost:8080/api/users')
assert response.status_code == 200
运行测试:
pytest test_api.py
Postman Newman CLI:
将Swagger导出为Postman Collection(通过Swagger Editor/UI),再用Newman执行自动化测试。
示例:
npm install -g newman
newman run your-swagger-collection.json -r cli,json # 输出CLI结果和JSON报告
Dredd(针对OpenAPI的测试工具):
直接解析Swagger文档并测试接口是否符合规范。
示例:
npm install -g dredd
dredd swagger.yaml http://localhost:8080 # 验证接口响应与文档一致
自动化测试可将脚本集成到Jenkins、GitLab CI等工具中,实现代码提交后自动运行测试,提高测试效率。
-p 38080:8080);-H添加Headers(如-H "Authorization: Bearer xxx");