温馨提示×

ubuntu swagger如何测试接口功能

小樊
49
2025-09-24 23:32:45
栏目: 智能运维

在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界面找到目标接口(如/usersGET方法),点击右侧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 导入并测试接口

  • 点击顶部菜单栏FileImportOpen 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文档的路径。

0