温馨提示×

CentOS中Swagger如何测试

小樊
44
2025-10-11 07:29:08
栏目: 智能运维

CentOS中Swagger测试流程及方法

一、前置准备:安装基础环境

在CentOS系统中测试Swagger前,需确保具备以下环境:

  • Java环境:Swagger依赖Java运行,需安装OpenJDK 8及以上版本。通过命令sudo yum install -y java-1.8.0-openjdk-devel安装,安装后用java -version验证版本。
  • Node.js与npm:若使用Swagger Editor/UI的Node.js版本,需安装Node.js。可通过下载二进制包(如wget https://nodejs.org/dist/v14.17.0/node-v14.17.0-linux-x64.tar.xz)解压后配置环境变量,再用node -vnpm -v验证安装。

二、Swagger部署:选择合适方式

1. Docker快速部署(推荐)

通过Docker镜像快速启动Swagger Editor和Swagger UI,无需复杂配置:

  • 拉取镜像:分别拉取Swagger Editor和Swagger UI的最新镜像(如docker pull swaggerapi/swagger-editor:v4.6.0docker pull swaggerapi/swagger-ui:v4.15.5)。
  • 运行容器:将容器端口映射到宿主机(Editor映射8080端口,UI映射8081端口),命令为docker run -d -p 38080:8080 swaggerapi/swagger-editor:v4.6.0docker run -d -p 38081:8080 swaggerapi/swagger-ui:v4.15.5
  • 访问界面:浏览器输入http://<CentOS-IP>:38080进入Swagger Editor(编辑文档),http://<CentOS-IP>:38081进入Swagger UI(测试接口)。

2. 源码部署(自定义配置)

若需修改Swagger源码或集成到现有项目:

  • 克隆仓库:通过git clone https://github.com/swagger-api/swagger-editor.gitgit clone https://github.com/swagger-api/swagger-ui.git下载Swagger Editor和UI源码。
  • 启动Editor:进入Editor目录,用npm install -g http-server安装HTTP服务器,再通过http-server -p 8080启动,访问http://localhost:8080
  • 配置UI:进入UI目录,初始化npm项目(npm init -y),安装Express(npm install express --save),创建index.js配置静态资源路径(如app.use('/static', express.static('public'))),启动服务器(node index.js),访问http://localhost:8005

三、测试执行:多种方式验证接口

1. 通过Swagger UI可视化测试

Swagger UI是最常用的图形化测试工具,步骤如下:

  • 导入文档:在Swagger UI界面点击“Import”按钮,上传swagger.yamlswagger.json配置文件(需提前编写,包含接口路径、参数、请求方法等信息)。
  • 选择接口:在左侧菜单中找到目标接口(如/user/query-user-info),点击展开。
  • 填写参数:在右侧“Parameters”区域输入必填参数(如limit=10page=1),支持URL参数、Body参数(JSON格式)、Header参数等。
  • 发送请求:点击“Try it out”按钮,Swagger会自动向接口发送请求,下方会显示响应结果(包括状态码、响应体、响应时间)。

2. 使用命令行工具测试

若习惯终端操作,可使用curl命令直接调用接口:

  • URL参数curl http://<server-ip>:<port>/client/selectByPage?limit=10&page=1(直接在URL后拼接参数)。
  • Body参数(表单)curl -X POST http://<server-ip>:<port>/factory/insert -H "Content-Type: application/x-www-form-urlencoded" -d "factoryName=TestFactory&no=123&remark=TestRemark"(指定Content-Type为表单格式,用-d传递参数)。
  • Body参数(JSON)curl -X POST http://<server-ip>:<port>/material/selectAll -H "Content-Type: application/json" -d '{"factory":"TestFactory","materialName":"TestMaterial","materialNo":"12345","offset":0,"page":1,"pageSize":10}'(指定Content-Type为JSON格式,用-d传递JSON字符串)。
  • 文件上传curl -X POST http://<server-ip>:<port>/api/all/order/money -F "file=@/path/to/file" -F "startTime=2020-01-01" -F "endTime=2020-06-30"(用-F传递文件和其他参数)。

3. 自动化测试(集成到CI/CD)

通过脚本或测试框架实现自动化接口测试:

  • Swagger-hacker脚本:用于探测接口可用性,安装Python环境后,运行python3 swagger-hack3.0.py -u https://<your-api-url>/swagger/v1/swagger.json,脚本会自动发送请求并记录响应结果。
  • JUnit/Postman:结合Swagger注解(如Spring Boot中的@Api@ApiOperation)自动生成测试代码,用JUnit编写测试用例,或通过Postman导入Swagger文档生成测试集合,实现接口自动化测试。

四、安全注意事项

  • 禁用生产环境Swagger UI:生产环境中,应通过配置(如Spring Boot中设置springfox.documentation.enabled=false)禁用Swagger UI,避免接口文档泄露。
  • 敏感信息保护:Swagger配置文件(如swagger.yaml)中避免包含数据库密码、API密钥等敏感信息,必要时使用环境变量替代。
  • 安全扫描:使用Burp Suite、X-Ray等工具对接口进行安全扫描,检测SQL注入、XSS攻击等漏洞,确保接口安全性。

0