阅读量:3
CentOS系统下Swagger测试的常用方法
1. 通过Swagger UI进行可视化测试(最常用)
Swagger UI是Swagger提供的交互式文档工具,支持直接在浏览器中测试API接口。
- 步骤1:部署Swagger UI
可通过Docker快速部署(推荐):
或手动下载Swagger UI(如v3.50.0),解压后修改docker pull swaggerapi/swagger-ui:v4.15.5 docker run -d -p 38081:8080 -e URL=/api-docs swaggerapi/swagger-ui:v4.15.5config-url指向后端API文档地址(如/v2/api-docs),再通过Nginx等web服务器提供服务。 - 步骤2:访问Swagger UI
浏览器输入http://(Docker部署)或:38081 http://(手动部署),进入Swagger UI界面。/swagger-ui.html - 步骤3:测试接口
在Swagger UI中找到目标接口(如/user/query-user-info),点击右侧Try it out按钮,输入必填参数(如limit、page),点击Execute即可发送请求。响应结果会显示在下方,包括状态码、响应时间和数据内容。
2. 使用curl命令行工具测试
若习惯使用命令行,可通过curl模拟HTTP请求测试API,适用于脚本自动化或无图形界面的场景。
- 常见请求示例:
- GET请求(参数在URL中):
curl "http://:9090/client/selectByPage?limit=10&page=1" - POST请求(表单参数):
curl -X POST "http://:9090/factory/insert" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "factoryName=TestFactory&no=123&remark=TestRemark" - POST请求(JSON参数):
curl -X POST "http://:9090/material/selectAll" \ -H "Content-Type: application/json" \ -d '{"factory":"TestFactory","materialName":"TestMaterial","offset":0,"page":1,"pageSize":10}' - 文件上传(FormData):
curl -X POST "http://:9090/api/all/order/money" \ -F "file=@/path/to/local/file.xlsx" \ -F "startTime=2020-01-01" \ -F "endTime=2020-06-30"
-v参数查看详细请求/响应头信息。 - GET请求(参数在URL中):
3. 利用自动化测试工具(适合CI/CD)
若需要集成到CI/CD流程或进行大规模测试,可使用以下工具生成测试代码或直接运行测试:
-
方案1:Swagger Codegen生成测试代码
- 安装Swagger Codegen CLI:
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 - 生成测试客户端代码(以Python为例):
java -jar swagger-codegen-cli.jar generate -i http://:8080/v2/api-docs -l python -o ./generated-client - 编写测试脚本(使用pytest+requests):
import pytest import requests BASE_URL = "http://:8080/api" def test_get_user(): response = requests.get(f"{BASE_URL}/users") assert response.status_code == 200 assert isinstance(response.json(), list) def test_create_user(): user_data = {"name": "John Doe", "email": "johndoe@example.com"} response = requests.post(f"{BASE_URL}/users", json=user_data) assert response.status_code == 201 assert response.json()["name"] == "John Doe" - 运行测试:
pytest test_api.py -v
- 安装Swagger Codegen CLI:
-
方案2:Postman Newman CLI
- 将Swagger文档导出为Postman Collection(可通过Swagger Editor或Codegen转换)。
- 安装Newman:
npm install -g newman - 运行测试:
newman run your-swagger-collection.json -r cli,json # 输出CLI结果和JSON报告 - 集成到CI/CD(如Jenkins):
newman run your-swagger-collection.json -r cli,json,html --reporter-html-export report.html
-
方案3:Dredd(针对OpenAPI规范)
- 安装Dredd:
npm install -g dredd - 运行测试(需提供Swagger YAML文件和API地址):
dredd swagger.yaml http://:8080
Dredd会根据Swagger文档自动生成测试用例,验证接口是否符合规范。
- 安装Dredd:
注意事项
- 确保CentOS防火墙开放了API端口(如8080、9090):
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent sudo firewall-cmd --reload - 若后端服务未启动,需先启动应用(如Spring Boot项目通过
mvn spring-boot:run启动)。 - 测试敏感接口(如DELETE、PUT)时,需确认接口权限和数据安全性。
以上就是关于“centos swagger如何进行测试”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm