RuoYi接口测试:Postman接口调试

RuoYi接口测试:Postman接口调试

【免费下载链接】RuoYi 🎉 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用 【免费下载链接】RuoYi 项目地址: https://gitcode.com/yangzongzhuan/RuoYi

前言

还在为RuoYi权限管理系统的接口调试而烦恼吗?每次开发新功能都要手动构造请求参数,反复测试接口响应?本文将为你全面解析RuoYi接口结构,并通过Postman工具实现高效接口调试,让你彻底告别繁琐的手动测试!

通过本文你将掌握:

  • RuoYi接口架构与设计规范
  • Postman环境配置与认证机制
  • 核心业务接口调试实战
  • 批量测试与自动化脚本编写
  • 接口文档生成与团队协作技巧

RuoYi接口架构解析

接口设计规范

RuoYi基于SpringBoot + Shiro构建,采用RESTful风格设计接口,所有接口都遵循统一的响应格式:

// 统一响应格式 AjaxResult
{
    "code": 0,        // 状态码:0-成功,301-警告,500-错误
    "msg": "操作成功", // 提示信息
    "data": {}        // 返回数据
}

核心接口分类

接口类别路径前缀示例接口功能描述
系统管理/system/system/user/list用户、角色、菜单管理
监控管理/monitor/monitor/online/list在线用户、操作日志
工具接口/tool/tool/swagger系统工具接口
演示接口/demo/demo/operate/list功能演示接口

Postman环境配置

安装与基础配置

首先确保已安装Postman,然后创建RuoYi专属工作区:

  1. 新建Collection:命名为"RuoYi接口测试"
  2. 配置环境变量
    {
      "base_url": "http://localhost:8080",
      "token": "{{auth_token}}",
      "username": "admin",
      "password": "admin123"
    }
    

认证机制配置

RuoYi使用Shiro进行身份认证,需要在请求头中添加认证信息:

// Pre-request Script 认证脚本
const loginRequest = {
  url: pm.environment.get("base_url") + "/login",
  method: "POST",
  header: {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  body: {
    mode: "urlencoded",
    urlencoded: [
      {key: "username", value: pm.environment.get("username")},
      {key: "password", value: pm.environment.get("password")}
    ]
  }
};

pm.sendRequest(loginRequest, function (err, response) {
  if (err) {
    console.log(err);
  } else {
    const jsonData = response.json();
    if (jsonData.code === 0) {
      pm.environment.set("auth_token", "authenticated");
    }
  }
});

核心接口调试实战

1. 用户登录接口

接口信息

  • 方法:POST
  • 路径:/login
  • 参数格式:form-data

请求示例

POST /login HTTP/1.1
Content-Type: application/x-www-form-urlencoded

username=admin&password=admin123

响应验证

// Tests 脚本
pm.test("登录成功", function () {
    pm.response.to.have.status(200);
    var jsonData = pm.response.json();
    pm.expect(jsonData.code).to.eql(0);
    pm.expect(jsonData.msg).to.eql("操作成功");
});

2. 用户管理接口

查询用户列表
POST /system/user/list HTTP/1.1
Content-Type: application/json
Cookie: JSESSIONID=your_session_id

{
  "pageNum": 1,
  "pageSize": 10,
  "userName": "",
  "phonenumber": ""
}
新增用户接口
POST /system/user/add HTTP/1.1
Content-Type: application/json
Cookie: JSESSIONID=your_session_id

{
  "userName": "测试用户",
  "loginName": "testuser",
  "password": "123456",
  "phonenumber": "13800138000",
  "email": "test@example.com",
  "deptId": 103,
  "roleIds": [2]
}

3. 数据字典接口

mermaid

高级调试技巧

批量测试与数据驱动

利用Postman的Collection Runner进行批量测试:

  1. 准备测试数据(JSON格式):
[
  {
    "username": "admin",
    "password": "admin123",
    "expected_code": 0
  },
  {
    "username": "test",
    "password": "wrong",
    "expected_code": 500
  }
]
  1. 配置测试脚本
pm.test("验证登录响应", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.code).to.eql(pm.iterationData.get("expected_code"));
});

接口依赖处理

复杂业务场景下的接口依赖管理:

// 获取用户ID后设置环境变量
if (pm.response.code === 200) {
    var jsonData = pm.response.json();
    var userId = jsonData.data.userId;
    pm.environment.set("current_user_id", userId);
}

// 后续接口使用该变量
pm.sendRequest({
    url: pm.environment.get("base_url") + "/system/user/edit/" + pm.environment.get("current_user_id"),
    method: "GET"
});

常见问题排查

认证失败问题

// 认证失败自动重试机制
if (pm.response.code === 401) {
    console.log("认证过期,重新登录...");
    // 执行重新登录逻辑
    pm.sendRequest(loginRequest, function (err, response) {
        if (!err) {
            // 重新执行当前请求
            pm.sendRequest(pm.request, function (err, response) {
                pm.test("重试请求成功", function () {
                    pm.expect(response.code).to.eql(200);
                });
            });
        }
    });
}

参数验证错误

// 参数验证测试
pm.test("参数验证", function () {
    var jsonData = pm.response.json();
    if (jsonData.code === 500) {
        pm.expect(jsonData.msg).to.include("失败");
        // 记录错误信息用于调试
        console.log("错误详情:" + jsonData.msg);
    }
});

自动化测试集成

Newman命令行测试

# 安装Newman
npm install -g newman

# 运行测试集合
newman run RuoYi_Collection.json \
  -e RuoYi_Environment.json \
  -d test_data.json \
  --reporters cli,json \
  --reporter-json-export report.json

持续集成配置

# GitHub Actions配置示例
name: RuoYi API Tests

on: [push, pull_request]

jobs:
  api-tests:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Setup Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'
    - name: Install Newman
      run: npm install -g newman
    - name: Run API Tests
      run: |
        newman run tests/RuoYi_Collection.json \
          -e tests/RuoYi_Environment.json \
          --reporters cli

最佳实践总结

接口测试规范

  1. 请求规范

    • 统一使用JSON格式传输数据
    • 必要的请求头(Content-Type、Authorization)
    • 合理的超时设置
  2. 响应验证

    • 状态码验证
    • 业务状态码验证
    • 数据结构验证
    • 异常情况处理
  3. 数据管理

    • 测试数据隔离
    • 数据清理机制
    • 环境变量管理

性能优化建议

// 性能测试脚本
pm.test("响应时间检查", function () {
    pm.expect(pm.response.responseTime).to.be.below(1000); // 1秒内响应
});

// 内存使用监控
pm.test("内存使用检查", function () {
    var jsonData = pm.response.json();
    pm.expect(JSON.stringify(jsonData).length).to.be.below(10000); // 响应数据小于10KB
});

结语

通过本文的详细讲解,相信你已经掌握了RuoYi接口测试的核心技能。Postman作为强大的API测试工具,能够极大提升RuoYi项目的开发效率和代码质量。记住良好的接口测试习惯:

  • ✅ 定期维护测试用例
  • ✅ 建立完善的测试数据体系
  • ✅ 实现自动化测试流水线
  • ✅ 持续优化测试策略

现在就开始使用Postman来优化你的RuoYi项目接口测试流程吧!如果有任何问题,欢迎在评论区交流讨论。


温馨提示:记得点赞、收藏、关注三连,后续将带来更多RuoYi实战技巧!

【免费下载链接】RuoYi 🎉 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用 【免费下载链接】RuoYi 项目地址: https://gitcode.com/yangzongzhuan/RuoYi

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值