CentOS中Swagger如何测试
导读:CentOS中Swagger测试流程及方法 一、前置准备:安装基础环境 在CentOS系统中测试Swagger前,需确保具备以下环境: Java环境:Swagger依赖Java运行,需安装OpenJDK 8及以上版本。通过命令sudo y...
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 -v
和npm -v
验证安装。
二、Swagger部署:选择合适方式
1. Docker快速部署(推荐)
通过Docker镜像快速启动Swagger Editor和Swagger UI,无需复杂配置:
- 拉取镜像:分别拉取Swagger Editor和Swagger UI的最新镜像(如
docker pull swaggerapi/swagger-editor:v4.6.0
、docker pull swaggerapi/swagger-ui:v4.15.5
)。 - 运行容器:将容器端口映射到宿主机(Editor映射8080端口,UI映射8081端口),命令为
docker run -d -p 38080:8080 swaggerapi/swagger-editor:v4.6.0
、docker 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.git
和git 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.yaml
或swagger.json
配置文件(需提前编写,包含接口路径、参数、请求方法等信息)。 - 选择接口:在左侧菜单中找到目标接口(如
/user/query-user-info
),点击展开。 - 填写参数:在右侧“Parameters”区域输入必填参数(如
limit=10
、page=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攻击等漏洞,确保接口安全性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS中Swagger如何测试
本文地址: https://pptw.com/jishu/723213.html