首页主机资讯Ubuntu Swagger项目如何进行测试

Ubuntu Swagger项目如何进行测试

时间2025-10-10 02:10:03发布访客分类主机资讯浏览923
导读:Ubuntu环境下Swagger项目的测试流程 一、基础环境准备 在Ubuntu系统上测试Swagger项目前,需安装以下基础工具: Node.js与npm:用于安装Swagger UI等工具。通过sudo apt update &...

Ubuntu环境下Swagger项目的测试流程

一、基础环境准备

在Ubuntu系统上测试Swagger项目前,需安装以下基础工具:

  • Node.js与npm:用于安装Swagger UI等工具。通过sudo apt update & & sudo apt install -y nodejs npm安装,安装后通过node -vnpm -v验证版本。
  • Swagger UI:用于可视化测试API。可通过两种方式部署:
    • 直接下载Swagger UI源码(如从GitHub克隆),进入dist目录后运行http-server -p 8080启动服务;
    • 使用npm全局安装http-server,再启动服务。启动后通过http://localhost:8080访问Swagger UI界面。

二、Swagger文档配置

要让Swagger识别并测试API,需提供符合OpenAPI规范的文档(swagger.yamlswagger.json):

  • 手动编写:使用YAML格式描述API基本信息(标题、版本、主机)、端点(路径、方法)、参数(路径参数、查询参数、请求体)及响应(状态码、数据结构)。例如:
    swagger: '2.0'
    info:
      title: Sample API
      version: 1.0.0
    paths:
      /users:
        get:
          summary: List all users
          responses:
            200:
              description: A list of users
              schema:
                type: array
                items:
                  $ref: '#/definitions/User'
    definitions:
      User:
        type: object
        properties:
          id:
            type: integer
          name:
            type: string
    
  • 自动生成:若项目基于Spring Boot,可添加springfox-swagger2springfox-swagger-ui依赖(版本2.9.2+),创建配置类启用Swagger,启动应用后访问http://localhost:8080/swagger-ui.html自动生成文档。

三、手动测试(通过Swagger UI)

Swagger UI提供了可视化的手动测试界面,无需编写代码即可快速验证API:

  1. 打开Swagger UI(如http://localhost:8080),找到目标API端点(如/users)。
  2. 点击端点右侧的Try it out按钮。
  3. 在“Params”区域输入路径参数或查询参数(如?name=John),在“Body”区域输入请求体(如POST请求的JSON数据)。
  4. 点击Execute按钮发送请求,查看响应结果(状态码、响应体、响应头)。

四、自动化测试(脚本化)

自动化测试可提高测试效率,适用于持续集成(CI)环境,常见方式如下:

1. 使用JavaScript(Mocha+Chai+Supertest)

适合Node.js项目,通过Swagger文档生成测试脚本:

  • 安装依赖:npm install mocha chai supertest yamljs --save-dev
  • 编写测试脚本(如test-swagger.js):
    const chai = require('chai');
        
    const expect = chai.expect;
        
    const swaggerUi = require('swagger-ui-express');
        
    const YAML = require('yamljs');
        
    const request = require('supertest');
        
    
    // 加载Swagger文档
    const swaggerDocument = YAML.load('./api-docs.yaml');
        
    const app = require('../app');
         // 你的Express应用
    
    // 测试用例
    describe('GET /users', () =>
     {
        
      it('should return a list of users', (done) =>
     {
        
        request(app)
          .get('/api/users') // 根据Swagger文档中的路径调整
          .expect(200)
          .end((err, res) =>
     {
        
            if (err) return done(err);
        
            expect(res.body).to.be.an('array');
        
            done();
    
          }
        );
    
      }
        );
    
    }
        );
    
    
  • 运行测试:npx mocha test-swagger.js

2. 使用Python(Requests+Pytest)

适合Python项目,通过Swagger文档解析接口信息并发送请求:

  • 安装依赖:pip install requests pytest pyyaml
  • 编写测试脚本(如test_sample_api.py):
    import unittest
    import requests
    import yaml
    
    class TestSampleAPI(unittest.TestCase):
        def setUp(self):
            with open('api.yaml') as f:
                swagger_data = yaml.safe_load(f)
            self.base_url = f"http://{
    swagger_data['host']}
    {
    swagger_data['basePath']}
    "
        
        def test_get_users(self):
            response = requests.get(f"{
    self.base_url}
        /v1/users")
            self.assertEqual(response.status_code, 200)
            data = response.json()
            self.assertIsInstance(data, list)
    
    if __name__ == '__main__':
        unittest.main()
    
  • 运行测试:python3 -m pytest test_sample_api.py

3. 使用JMeter

适合性能测试或复杂场景(如压力测试、并发测试):

  • 安装JMeter:从官网下载并解压,进入bin目录运行./jmeter启动。
  • 导入Swagger文档:通过JMeter的“HTTP Request Defaults”配置API基础URL,添加“Swagger Reader”插件(需提前安装)解析Swagger文档生成测试计划。
  • 添加断言:如“Response Assertion”验证状态码或响应内容。
  • 运行测试:点击“Start”按钮执行测试,查看“View Results Tree”或“Summary Report”分析结果。

五、兼容性测试

确保Swagger UI在不同浏览器(Chrome、Firefox、Edge)和版本中正常显示和功能正常:

  • Selenium Grid:使用Docker部署Selenium Grid,配置多个浏览器节点(如docker-compose up -d --name chrome110 -p 5555:4444 selenium/standalone-chrome:4.8.0-20230210),通过Swagger UI的自动化测试脚本在Grid上运行测试。
  • MeterSphere:开源持续测试平台,支持UI测试,配置Selenium-Grid后,通过MeterSphere的UI测试模块选择Swagger UI端点运行测试。
  • 在线工具:使用BrowserStack或Sauce Labs等模拟器,模拟不同浏览器环境进行测试。

六、集成到持续集成(CI)

将自动化测试集成到CI/CD管道(如Jenkins、GitHub Actions),实现代码提交后自动运行测试:

  • Jenkins:创建Jenkins Job,配置Git仓库拉取代码,添加“Execute shell”步骤运行测试脚本(如npm testpytest),设置邮件通知测试结果。
  • GitHub Actions:在项目根目录创建.github/workflows/test.yml文件,定义触发条件(如pushpull_request),添加测试步骤(如npm install & & npm test)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu Swagger项目如何进行测试
本文地址: https://pptw.com/jishu/722075.html
如何在Ubuntu上使用Swagger Codegen Ubuntu如何自定义Swagger主题

游客 回复需填写必要信息