CentOS中Swagger测试流程及方法
在CentOS系统中测试Swagger前,需确保具备以下环境:
sudo yum install -y java-1.8.0-openjdk-devel安装,安装后用java -version验证版本。wget https://nodejs.org/dist/v14.17.0/node-v14.17.0-linux-x64.tar.xz)解压后配置环境变量,再用node -v和npm -v验证安装。通过Docker镜像快速启动Swagger Editor和Swagger UI,无需复杂配置:
docker pull swaggerapi/swagger-editor:v4.6.0、docker pull swaggerapi/swagger-ui:v4.15.5)。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(测试接口)。若需修改Swagger源码或集成到现有项目:
git clone https://github.com/swagger-api/swagger-editor.git和git clone https://github.com/swagger-api/swagger-ui.git下载Swagger Editor和UI源码。npm install -g http-server安装HTTP服务器,再通过http-server -p 8080启动,访问http://localhost:8080。npm init -y),安装Express(npm install express --save),创建index.js配置静态资源路径(如app.use('/static', express.static('public'))),启动服务器(node index.js),访问http://localhost:8005。Swagger UI是最常用的图形化测试工具,步骤如下:
swagger.yaml或swagger.json配置文件(需提前编写,包含接口路径、参数、请求方法等信息)。/user/query-user-info),点击展开。limit=10、page=1),支持URL参数、Body参数(JSON格式)、Header参数等。若习惯终端操作,可使用curl命令直接调用接口:
curl http://<server-ip>:<port>/client/selectByPage?limit=10&page=1(直接在URL后拼接参数)。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传递参数)。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传递文件和其他参数)。通过脚本或测试框架实现自动化接口测试:
python3 swagger-hack3.0.py -u https://<your-api-url>/swagger/v1/swagger.json,脚本会自动发送请求并记录响应结果。@Api、@ApiOperation)自动生成测试代码,用JUnit编写测试用例,或通过Postman导入Swagger文档生成测试集合,实现接口自动化测试。springfox.documentation.enabled=false)禁用Swagger UI,避免接口文档泄露。swagger.yaml)中避免包含数据库密码、API密钥等敏感信息,必要时使用环境变量替代。