Linux里Swagger接口如何测试
Linux环境下Swagger接口测试方法
1. 准备工作:安装Swagger相关工具
在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文档语法或生成代码。
2. 导入Swagger配置文件
无论使用Swagger Editor还是Swagger UI,都需要将项目的OpenAPI规范文件(swagger.json或swagger.yaml)导入工具中:
- 在Swagger Editor中,点击左上角【File】→【Import File】,选择本地配置文件;
- 在Swagger UI中,通过“Import File”按钮上传文件,或直接输入API地址(如
http://localhost:8080/v2/api-docs)。
3. 交互式测试:Swagger UI/Editor的“TRY IT OUT”功能
导入配置文件后,可直接在Swagger UI或Editor中测试接口:
- 浏览接口列表,找到目标接口(如
/user/query-user-info); - 点击接口下方的**“TRY IT OUT”**按钮;
- 输入必要参数(如查询参数、请求体、Headers等,支持JSON、表单等多种格式);
- 点击**“Execute”**发送请求,查看响应结果(包括状态码、响应体、Headers等)。
例如,测试一个POST接口时,可在“Request Body”中输入JSON数据:{ "factory":"TestFactory","no":"123"},点击“Execute”即可验证接口是否返回预期结果。
4. 命令行测试:使用curl工具
若习惯使用命令行,Linux自带的curl是测试接口的高效工具,支持GET、POST、PUT等多种请求方法:
- GET请求(参数在URL中):
curl "http://172.16.110.147:9090/client/selectByPage?limit=10& page=1" - POST请求(表单参数):
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" - POST请求(JSON参数):
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} ' - 文件上传(FormData):
执行后,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会输出接口的响应结果,便于快速验证。
5. 自动化测试:生成代码与脚本
若需要频繁测试或集成到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等工具中,实现代码提交后自动运行测试,提高测试效率。
注意事项
- 确保Swagger UI/Editor容器正在运行,且端口映射正确(如
-p 38080:8080); - 若接口需要认证(如JWT、API Key),需在Swagger UI的“Authorize”按钮中添加认证信息,或在curl命令中通过
-H添加Headers(如-H "Authorization: Bearer xxx"); - 自动化测试时,需确保测试环境与生产环境隔离,避免影响线上数据。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux里Swagger接口如何测试
本文地址: https://pptw.com/jishu/746614.html
