ubuntu swagger如何测试接口功能
导读:在Ubuntu上使用Swagger测试接口功能的步骤 1. 准备工作:安装基础工具 在开始前,需确保系统已安装Node.js(用于运行Swagger UI/Editor)和npm(Node.js包管理器)。通过以下命令安装: sudo ap...
在Ubuntu上使用Swagger测试接口功能的步骤
1. 准备工作:安装基础工具
在开始前,需确保系统已安装Node.js(用于运行Swagger UI/Editor)和npm(Node.js包管理器)。通过以下命令安装:
sudo apt update
sudo apt install -y nodejs npm
2. 安装并配置Swagger UI(交互式测试首选)
Swagger UI是可视化测试接口的工具,支持“Try it out”功能,无需编写代码即可发送请求。
2.1 安装Swagger UI
通过npm全局安装swagger-ui-express
(用于集成Express服务器):
sudo npm install -g swagger-ui-express
2.2 准备Swagger文档
创建swagger.yaml
(或swagger.json
)文件,定义接口规范(如接口路径、请求方法、参数、响应等)。例如:
openapi: 3.0.0
info:
title: Sample API
version: 1.0.0
paths:
/users:
get:
summary: Get all users
responses:
'200':
description: A list of users
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
components:
schemas:
User:
type: object
properties:
id:
type: integer
name:
type: string
2.3 启动Swagger UI服务
创建一个Express应用(如server.js
),集成Swagger文档并启动服务器:
const express = require('express');
const swaggerUi = require('swagger-ui-express');
const YAML = require('yamljs');
// 加载Swagger文档
const swaggerDocument = YAML.load('./swagger.yaml');
const app = express();
// 将Swagger文档挂载到/api-docs路径
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
const PORT = 3000;
app.listen(PORT, () =>
{
console.log(`Swagger UI is running at http://localhost:${
PORT}
/api-docs`);
}
);
启动服务器:
node server.js
2.4 测试接口
- 打开浏览器访问
http://localhost:3000/api-docs
。 - 在Swagger UI界面找到目标接口(如
/users
的GET
方法),点击右侧Try it out按钮。 - 输入必要参数(若有),点击Execute发送请求。
- 查看下方Response区域,获取接口返回的状态码、响应体等信息。
3. 安装并使用Swagger Editor(文档编辑与测试)
Swagger Editor用于编写、编辑Swagger文档,同时支持在线测试接口。
3.1 安装Swagger Editor
通过npm全局安装:
sudo npm install -g swagger-editor
启动Editor:
swagger-editor
默认会在浏览器中打开http://localhost:8080
。
3.2 导入并测试接口
- 点击顶部菜单栏File → Import → Open File,选择本地的
swagger.yaml
文件。 - 编辑文档后,点击接口下方的Authorize按钮(若有认证需求),输入认证信息。
- 点击Try it out,输入参数并执行,查看响应结果。
4. 自动化测试(可选,适合持续集成)
若需要批量测试接口或集成到CI/CD流程,可使用自动化测试工具(如Mocha+Chai+Supertest)。
4.1 安装依赖
sudo npm install -g mocha chai supertest yamljs
4.2 编写测试脚本
创建test-swagger.js
文件,使用Supertest发送请求并断言结果:
const chai = require('chai');
const expect = chai.expect;
const request = require('supertest');
const YAML = require('yamljs');
// 加载Swagger文档
const swaggerDocument = YAML.load('./swagger.yaml');
const app = require('./server');
// 导入你的Express应用
describe('GET /users', () =>
{
it('should return a list of users with status 200', (done) =>
{
request(app)
.get('/api-docs/users') // 根据Swagger UI的挂载路径调整
.expect(200)
.end((err, res) =>
{
if (err) return done(err);
expect(res.body).to.be.an('array');
// 断言响应体是数组
done();
}
);
}
);
}
);
4.3 运行测试
mocha test-swagger.js
测试结果会显示在终端,提示通过或失败的用例。
注意事项
- 确保Swagger文档(
swagger.yaml
/swagger.json
)的语法正确,否则Swagger UI无法加载。 - 若接口需要认证(如Bearer Token),在Swagger UI的Authorize按钮中输入认证信息。
- 自动化测试时,需确保Express应用已正确启动,并暴露了Swagger文档的路径。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu swagger如何测试接口功能
本文地址: https://pptw.com/jishu/716053.html