在Ubuntu上测试Swagger API可通过**交互式界面(Swagger UI)或自动化工具(如Newman、Dredd)**实现,以下是具体步骤:
测试前需安装Node.js、npm(Node.js包管理器)和Docker(可选,用于容器化部署)。
sudo apt update
sudo apt install -y nodejs npm
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
Swagger UI提供可视化界面,可直接发送请求并查看响应,适合手动验证接口功能。
sudo npm install -g swagger-ui-express
wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v3.48.0.tar.gz
tar -xvf v3.48.0.tar.gz
cd swagger-ui-3.48.0
若使用npm安装:
创建Express应用托管Swagger UI,新建server.js文件:
const express = require('express');
const swaggerUi = require('swagger-ui-express');
const YAML = require('yamljs'); // 解析YAML文件
// 加载Swagger文档(需替换为你的文档路径)
const swaggerDocument = YAML.load('./swagger.yaml');
const app = express();
// 托管Swagger UI,指定文档路径
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
const PORT = 3000;
app.listen(PORT, () => console.log(`Swagger UI运行在 http://localhost:${PORT}/api-docs`));
安装依赖并启动:
npm install express swagger-ui-express yamljs
node server.js
若使用下载的压缩包:
进入解压后的目录,安装http-server并启动:
npm install -g http-server
http-server -p 8081
此时Swagger UI会在http://localhost:8081运行。
http://localhost:3000/api-docs)。自动化测试可实现批量接口验证,适合集成到开发流程中。
Newman可将Swagger文档转换为Postman集合,并执行自动化测试。
swagger.yaml/swagger.json导出为Postman Collection JSON文件(如collection.json)。npm install -g newman
newman run collection.json -e environment.json --reporters cli,json
其中environment.json为环境变量文件(如API基础URL),--reporters指定报告格式(命令行+JSON)。Dredd直接解析OpenAPI文档(YAML/JSON),生成并执行测试用例,验证接口是否符合文档定义。
npm install -g dredd
dredd swagger.yaml http://localhost:8080
Dredd会自动比对文档与实际接口的响应,输出差异报告。@CrossOrigin注解),或在Swagger UI配置中允许跨域。--auth参数。以上方法覆盖了Ubuntu上Swagger API的手动与自动化测试需求,可根据场景选择合适的方式。