首页主机资讯Ubuntu Swagger测试用例怎么编写

Ubuntu Swagger测试用例怎么编写

时间2025-11-14 19:55:05发布访客分类主机资讯浏览1237
导读:Ubuntu 下编写 Swagger 测试用例的实用方案 一、方案总览与选型 在 Ubuntu 上编写 Swagger 测试用例,常用路径有三条: 使用 Node.js + Mocha/Chai + Supertest 直接对运行中的...

Ubuntu 下编写 Swagger 测试用例的实用方案

一、方案总览与选型

  • Ubuntu 上编写 Swagger 测试用例,常用路径有三条:
    1. 使用 Node.js + Mocha/Chai + Supertest 直接对运行中的 API 发起请求,适合已有后端服务或集成测试。
    2. 使用 Python + pytest + requests 编写自动化测试,结合 Swagger 文档做参数化与批量校验,适合数据驱动与报告输出。
    3. 使用 JMeter 导入/利用 Swagger 信息生成脚本,做性能与回归测试,适合压测场景。
  • 若仅做手工调试,可在 Swagger UITry it out 中直接发起请求并验证响应,再沉淀为自动化用例。

二、Node.js 方案 Mocha Chai Supertest

  • 安装依赖与初始化
    • 安装 Node.js/npm:sudo apt update & & sudo apt install -y nodejs npm
    • 初始化项目并安装依赖:
      • npm init -y
      • npm i -D mocha chai supertest
  • 启动被测服务(示例 Express + Swagger UI)
    • 安装:npm i express swagger-ui-express
    • 新建 app.js(加载本地 swagger.json 并启动服务):
      • const express = require(‘express’); const swaggerUi = require(‘swagger-ui-express’); const swaggerDocument = require(‘./swagger.json’); const app = express(); app.use(‘/api-docs’, swaggerUi.serve, swaggerUi.setup(swaggerDocument)); app.get(‘/users’, (req,res)=> res.json([{ id:1,name:‘A’} ])); app.listen(3000, ()=> console.log(‘http://localhost:3000’));
  • 编写测试 test/api.test.js
    • const request = require(‘supertest’); const { expect } = require(‘chai’); const app = require(‘…/app’); describe(‘GET /users’, ()=> { it(‘should return 200 and array’, async ()=> { const res = await request(app).get(‘/users’); expect(res.status).to.equal(200); expect(res.body).to.be.an(‘array’); } ); } );
  • 运行测试
    • npx mocha test/**/*.test.js
  • 说明
    • 也可将 Swagger JSON/YAML 加载到内存,基于路径与响应定义做契约/冒烟测试;本示例直接对本地服务发起请求,便于端到端验证。

三、Python 方案 pytest requests 参数化

  • 安装依赖
    • sudo apt install -y python3 python3-pip
    • pip install pytest requests
  • 编写测试 test_api.py
    • import pytest, requests BASE = ‘http://localhost:3000’ @pytest.mark.parametrize(‘path,expected_status’, [(‘/users’, 200), (‘/nonexist’, 404)]) def test_status(path, expected_status): r = requests.get(f’{ BASE} { path} ‘, timeout=5) assert r.status_code == expected_status @pytest.mark.parametrize(‘name,email’, [(‘Bob’,‘bob@example.com’), (‘Alice’,‘alice@example.com’)]) def test_create_user(name, email): r = requests.post(f’{ BASE} /users’, json={ ‘name’:name,‘email’:email} , timeout=5) assert r.status_code in (201, 200) assert r.json().get(‘name’) == name
  • 运行测试
    • pytest -v test_api.py
  • 扩展
    • 结合 Swagger 文档 自动解析接口与模型,批量生成参数化用例,并用 pytest-html 生成 HTML 报告,适合持续集成与回归。

四、JMeter 方案 性能与回归测试

  • 准备
    • 在 Ubuntu 安装 JMeter(可下载官方包或通过包管理器安装),确保可访问被测服务。
  • 导入 Swagger 生成脚本
    • 方式一:使用 SwaggerParser 解析 Swagger JSON,读取 host、paths、definitions,自动生成 HTTP 请求/断言 的 JMeter 测试计划(Java 示例思路)。
    • 方式二:在 Swagger UI 使用 Try it out 获取 cURL,将 cURL 命令导入 JMeter(或手动录入请求),并添加响应断言、响应时间等监听器。
  • 执行与报告
    • 在 JMeter 中配置线程组、循环、监听器(如查看结果树、聚合报告),运行后分析 吞吐量、错误率、P95/P99 等指标。

五、用例设计要点与落地建议

  • 用例分层
    • 冒烟:核心路径(如登录、列表、关键业务 CRUD)返回 200/201 且结构符合契约。
    • 功能:参数边界、必填校验、错误码(如 400/401/403/404/422)、分页/排序/过滤。
    • 契约:响应字段类型、必选字段、示例值与 schema 一致性。
    • 性能:基准并发、峰值、稳定性(长时间运行)。
  • 数据与配置
    • 使用 fixture/factory 或数据文件管理测试数据;将 baseUrl、鉴权 token 放入配置或环境变量。
  • 持续集成
    • GitHub Actions/GitLab CI 中执行测试并产出 JUnit/HTML 报告;Node 项目用 npx mocha,Python 项目用 pytest;性能测试可单独流水线定时运行。
  • 文档与调试
    • 开发阶段用 Swagger UITry it out 快速验证接口与示例,再沉淀为自动化用例;确保每次接口变更后同步更新 Swagger 文档 与用例。

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


若转载请注明出处: Ubuntu Swagger测试用例怎么编写
本文地址: https://pptw.com/jishu/748356.html
Linux Spool打印任务管理方法 Debian挂载远程桌面文件

游客 回复需填写必要信息