Files
hzdyjs/docs/测试文档/学工管理/学生信息收集批次管理/批次组织权限范围API测试.md
T
2025-07-28 01:26:18 +08:00

6.5 KiB
Raw Blame History

批次组织权限范围API测试文档

📋 测试信息

项目 信息
测试接口 /stuColBatchClass/stuColBatchClass/getBatchAuthScope/{batchId}
测试模块 学生信息收集批次管理
测试时间 2025-01-27
测试人员 cursor
测试版本 V1.0.0

🎯 测试目标

验证批次组织权限范围API接口的功能正确性,确保:

  1. 用户只能看到有权限访问的组织结构
  2. 组织树过滤逻辑正确
  3. 返回的树形结构保持层级关系完整
  4. 异常情况处理正确

🔧 测试环境

  • 后端服务: http://localhost:8080
  • 认证方式: Bearer Token (Sa-Token)
  • 测试工具: Postman / API测试脚本
  • 数据库: MySQL 8.0

📊 测试用例

1. 正常功能测试

1.1 全校学生管理员权限测试

测试步骤:

  1. 使用全校学生管理员账号登录
  2. 调用接口 GET /stuColBatchClass/stuColBatchClass/getBatchAuthScope/1
  3. 验证返回结果

预期结果:

  • 返回完整的组织树结构
  • 只包含批次1配置的班级及其上级节点
  • 所有节点的disabled字段正确设置

测试请求:

curl -X GET "http://localhost:8080/stuColBatchClass/stuColBatchClass/getBatchAuthScope/1" \
-H "Authorization: Bearer {token}" \
-H "clientid: e5cd7e4891bf95d1d19206ce24a7b32e" \
-H "referer: http://localhost"

1.2 普通管理员权限测试

测试步骤:

  1. 使用普通管理员账号登录
  2. 调用接口测试不同批次ID
  3. 验证权限过滤效果

预期结果:

  • 只返回用户有权限的组织部分
  • 权限范围外的节点被正确过滤
  • 保持父子节点关系完整

1.3 班主任权限测试

测试步骤:

  1. 使用班主任账号登录
  2. 调用接口测试
  3. 验证只返回所带班级的相关信息

预期结果:

  • 只返回班主任所带班级的组织树
  • 包含班级的完整上级层级
  • 其他班级信息被过滤

2. 边界情况测试

2.1 无效批次ID测试

测试数据:

  • 不存在的批次ID: 99999
  • 无效格式: "abc"
  • 空值: null

预期结果:

  • 返回空列表或适当的错误信息
  • 不会抛出异常

2.2 批次无权限配置测试

测试条件: 批次存在但未配置任何班级权限

预期结果:

  • 返回空列表
  • 响应码200,消息正常

2.3 用户无权限测试

测试条件: 用户对指定批次没有任何权限

预期结果:

  • 返回空列表
  • 不暴露其他用户的权限信息

3. 性能测试

3.1 大数据量测试

测试条件:

  • 批次配置包含大量班级(100+)
  • 用户权限范围较大

性能指标:

  • 响应时间 < 2秒
  • 内存使用合理
  • 无内存泄漏

3.2 并发测试

测试条件: 多用户同时调用接口

预期结果:

  • 并发处理正常
  • 数据隔离正确
  • 无数据混乱

4. 数据验证测试

4.1 树形结构验证

验证项目:

  • 父子节点关系正确
  • 节点ID唯一性
  • 层级深度合理
  • children数组结构正确

4.2 字段完整性验证

验证字段:

  • id: 非空,数字类型
  • label: 非空,字符串类型
  • parentId: 数字类型或null
  • deptCategory: 枚举值有效
  • weight: 数字类型
  • disabled: 布尔类型
  • children: 数组类型

📝 测试结果记录

测试执行记录

测试用例 执行状态 结果 备注
全校管理员权限 ⭕ 待执行 - -
普通管理员权限 ⭕ 待执行 - -
班主任权限 ⭕ 待执行 - -
无效批次ID ⭕ 待执行 - -
无权限配置 ⭕ 待执行 - -
性能测试 ⭕ 待执行 - -

问题记录

问题ID 问题描述 严重级别 状态 解决方案
- - - - -

🚀 自动化测试脚本

import requests
import json

class BatchAuthScopeAPITest:
    def __init__(self, base_url, token):
        self.base_url = base_url
        self.headers = {
            'Authorization': f'Bearer {token}',
            'clientid': 'e5cd7e4891bf95d1d19206ce24a7b32e',
            'referer': 'http://localhost',
            'Content-Type': 'application/json'
        }
    
    def test_get_batch_auth_scope(self, batch_id):
        """测试获取批次组织权限范围"""
        url = f"{self.base_url}/stuColBatchClass/stuColBatchClass/getBatchAuthScope/{batch_id}"
        
        try:
            response = requests.get(url, headers=self.headers)
            print(f"Status Code: {response.status_code}")
            print(f"Response: {json.dumps(response.json(), indent=2, ensure_ascii=False)}")
            
            # 验证响应结构
            if response.status_code == 200:
                data = response.json()
                assert 'code' in data
                assert 'data' in data
                
                # 验证树形结构
                if data['data']:
                    self.validate_tree_structure(data['data'])
                    
                print("✅ 测试通过")
            else:
                print(f"❌ 测试失败: {response.status_code}")
                
        except Exception as e:
            print(f"❌ 测试异常: {str(e)}")
    
    def validate_tree_structure(self, tree_data):
        """验证树形结构"""
        for node in tree_data:
            assert 'id' in node
            assert 'label' in node
            assert 'children' in node
            assert isinstance(node['children'], list)
            
            # 递归验证子节点
            if node['children']:
                self.validate_tree_structure(node['children'])

# 使用示例
if __name__ == "__main__":
    # 替换为实际的token
    token = "your_actual_token_here"
    tester = BatchAuthScopeAPITest("http://localhost:8080", token)
    
    # 测试不同批次ID
    test_batch_ids = [1, 2, 99999]  # 包含有效和无效ID
    
    for batch_id in test_batch_ids:
        print(f"\n🧪 测试批次ID: {batch_id}")
        tester.test_get_batch_auth_scope(batch_id)

📈 测试报告

总体评估

  • 测试覆盖率: 待完成
  • 功能完整性: 待验证
  • 性能表现: 待测试
  • 安全性: 待评估

改进建议

  1. 增加缓存机制提升性能
  2. 完善错误信息的友好性
  3. 考虑添加批量查询接口
  4. 优化大数据量场景的处理

文档更新时间: 2025-01-27 22:15:00
下次更新计划: 测试执行完成后更新结果