feat: 完成中介黑名单管理模块测试脚本、API文档、菜单配置和测试报告模板

## 新增文件

### 测试脚本 (Task 11)
- doc/scripts/test-intermediary-api.sh: 完整的API自动化测试脚本
  * 获取Token
  * 测试查询列表(含条件查询)
  * 测试新增个人/实体中介
  * 测试查询详情
  * 测试修改操作
  * 测试唯一性校验
  * 支持彩色输出和错误处理

- doc/scripts/cleanup-intermediary-test-data.sh: 测试数据清理脚本
  * 查询测试数据
  * 删除测试数据
  * 验证删除结果

- doc/scripts/run-test.bat: Windows测试脚本启动器
- doc/scripts/run-cleanup.bat: Windows清理脚本启动器

### API文档 (Task 12)
- doc/api/中介黑名单管理API文档-v2.0.md: 完整的v2.0 API接口文档
  * 14个API接口详细说明
  * 请求参数、响应格式、错误码
  * 字典数据说明
  * 业务错误信息
  * v2.0主要变更说明

### 菜单配置 (Task 13)
- sql/menu-intermediary.sql: 菜单和权限配置SQL
  * 主菜单: 中介黑名单(目录)
  * 子菜单: 中介管理(页面)
  * 按钮权限: 查询、列表、新增、修改、删除、导出、导入
  * 包含详细的注释和使用说明

### 测试报告模板 (Task 14)
- doc/test/intermediary-blacklist-test-report.md: 测试报告模板
  * 44个测试用例(列表查询、个人/实体中介、唯一性校验、删除、导入导出、权限)
  * 测试结果统计表格
  * 缺陷统计表格
  * 测试结论模板
  * 签名确认

### 文档 (Task 10)
- doc/README-中介黑名单测试部署.md: 测试与部署指南
  * 快速开始指南
  * API接口列表
  * 菜单权限说明
  * 数据字典说明
  * 常见问题解答
  * 版本历史

## 功能特性

1. **自动化测试**
   - 支持Linux/Windows环境
   - 完整的API覆盖
   - 彩色输出,易于阅读
   - 错误处理和提示

2. **完整的文档**
   - 详细的API文档
   - 清晰的测试报告模板
   - 便于复现的测试用例

3. **菜单配置**
   - 一键SQL执行
   - 完整的权限体系
   - 支持角色分配

4. **测试支持**
   - 测试数据清理
   - 测试结果验证
   - 批处理支持

## 技术亮点

- 使用jq进行JSON解析
- 支持Token自动获取
- 完整的错误处理
- 跨平台支持(Linux/Windows)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
wkc
2026-02-04 19:37:17 +08:00
parent 85d4289ba7
commit e0ce344d09
8 changed files with 2021 additions and 0 deletions

View File

@@ -0,0 +1,286 @@
# 中介黑名单管理模块测试报告
## 测试概要
| 项目 | 内容 |
|------|------|
| 测试模块 | 中介黑名单管理 |
| 测试版本 | v2.0 |
| 测试日期 | 2026-02-04 |
| 测试人员 | [测试人员姓名] |
| 测试环境 | 开发环境 |
| 后端地址 | http://localhost:8080 |
| 前端地址 | http://localhost |
---
## 测试环境信息
### 后端环境
- **框架**: Spring Boot 3.5.8
- **JDK版本**: Java 17
- **数据库**: MySQL 8.2.0
- **ORM框架**: MyBatis Plus 3.5.10
- **API文档**: Swagger UI (http://localhost:8080/swagger-ui/index.html)
### 前端环境
- **框架**: Vue 2.6.12
- **UI库**: Element UI 2.15.14
- **构建工具**: npm/yarn
### 测试账号
- **用户名**: admin
- **密码**: admin123
- **角色**: 管理员
---
## 测试用例执行情况
### 1. 列表查询测试
#### 1.1 基础列表查询
| 测试项 | 测试步骤 | 预期结果 | 实际结果 | 测试状态 |
|--------|---------|---------|---------|---------|
| 查询所有中介 | GET /ccdi/intermediary/list | 返回分页数据列表 | | ⬜ 通过 / ❌ 失败 |
| 分页查询 | pageNum=1, pageSize=10 | 返回第一页10条数据 | | ⬜ 通过 / ❌ 失败 |
#### 1.2 条件查询
| 测试项 | 测试步骤 | 预期结果 | 实际结果 | 测试状态 |
|--------|---------|---------|---------|---------|
| 按姓名查询 | name=张三 | 返回姓名包含"张三"的数据 | | ⬜ 通过 / ❌ 失败 |
| 按证件号查询 | certificateNo=110101... | 返回证件号匹配的数据 | | ⬜ 通过 / ❌ 失败 |
| 按中介类型查询 | intermediaryType=1 | 返回个人中介数据 | | ⬜ 通过 / ❌ 失败 |
| 按中介类型查询 | intermediaryType=2 | 返回实体中介数据 | | ⬜ 通过 / ❌ 失败 |
| 组合条件查询 | 多个条件组合 | 返回符合所有条件的数据 | | ⬜ 通过 / ❌ 失败 |
### 2. 个人中介管理测试
#### 2.1 新增个人中介
| 测试项 | 测试步骤 | 预期结果 | 实际结果 | 测试状态 |
|--------|---------|---------|---------|---------|
| 正常新增 | POST /ccdi/intermediary/person | 返回成功,数据保存 | | ⬜ 通过 / ❌ 失败 |
| 姓名为空 | name="" | 提示"姓名不能为空" | | ⬜ 通过 / ❌ 失败 |
| 证件号为空 | personId="" | 提示"证件号码不能为空" | | ⬜ 通过 / ❌ 失败 |
| 姓名超长 | name=101个字符 | 提示"姓名长度不能超过100个字符" | | ⬜ 通过 / ❌ 失败 |
| 证件号超长 | personId=51个字符 | 提示"证件号码长度不能超过50个字符" | | ⬜ 通过 / ❌ 失败 |
| 证件号重复 | 使用已存在的personId | 提示"该证件号已存在" | | ⬜ 通过 / ❌ 失败 |
#### 2.2 查询个人中介详情
| 测试项 | 测试步骤 | 预期结果 | 实际结果 | 测试状态 |
|--------|---------|---------|---------|---------|
| 正常查询 | GET /ccdi/intermediary/person/{bizId} | 返回完整的个人中介详情 | | ⬜ 通过 / ❌ 失败 |
| bizId不存在 | 使用不存在的bizId | 返回空数据或提示 | | ⬜ 通过 / ❌ 失败 |
#### 2.3 修改个人中介
| 测试项 | 测试步骤 | 预期结果 | 实际结果 | 测试状态 |
|--------|---------|---------|---------|---------|
| 正常修改 | PUT /ccdi/intermediary/person | 返回成功,数据更新 | | ⬜ 通过 / ❌ 失败 |
| 修改为重复证件号 | personId改为已存在的值 | 提示"该证件号已存在" | | ⬜ 通过 / ❌ 失败 |
| 姓名为空 | name="" | 提示"姓名不能为空" | | ⬜ 通过 / ❌ 失败 |
### 3. 实体中介管理测试
#### 3.1 新增实体中介
| 测试项 | 测试步骤 | 预期结果 | 实际结果 | 测试状态 |
|--------|---------|---------|---------|---------|
| 正常新增 | POST /ccdi/intermediary/entity | 返回成功,数据保存 | | ⬜ 通过 / ❌ 失败 |
| 机构名称为空 | enterpriseName="" | 提示"机构名称不能为空" | | ⬜ 通过 / ❌ 失败 |
| 机构名称超长 | enterpriseName=201个字符 | 提示"机构名称长度不能超过200个字符" | | ⬜ 通过 / ❌ 失败 |
| 统一社会信用代码重复 | 使用已存在的socialCreditCode | 提示"该统一社会信用代码已存在" | | ⬜ 通过 / ❌ 失败 |
#### 3.2 查询实体中介详情
| 测试项 | 测试步骤 | 预期结果 | 实际结果 | 测试状态 |
|--------|---------|---------|---------|---------|
| 正常查询 | GET /ccdi/intermediary/entity/{socialCreditCode} | 返回完整的实体中介详情 | | ⬜ 通过 / ❌ 失败 |
| socialCreditCode不存在 | 使用不存在的代码 | 返回空数据或提示 | | ⬜ 通过 / ❌ 失败 |
#### 3.3 修改实体中介
| 测试项 | 测试步骤 | 预期结果 | 实际结果 | 测试状态 |
|--------|---------|---------|---------|---------|
| 正常修改 | PUT /ccdi/intermediary/entity | 返回成功,数据更新 | | ⬜ 通过 / ❌ 失败 |
| 修改为重复信用代码 | socialCreditCode改为已存在的值 | 提示"该统一社会信用代码已存在" | | ⬜ 通过 / ❌ 失败 |
| 机构名称为空 | enterpriseName="" | 提示"机构名称不能为空" | | ⬜ 通过 / ❌ 失败 |
### 4. 唯一性校验测试
| 测试项 | 测试步骤 | 预期结果 | 实际结果 | 测试状态 |
|--------|---------|---------|---------|---------|
| 校验人员ID唯一性 | GET /checkPersonIdUnique | 返回true/false | | ⬜ 通过 / ❌ 失败 |
| 校验统一社会信用代码唯一性 | GET /checkSocialCreditCodeUnique | 返回true/false | | ⬜ 通过 / ❌ 失败 |
### 5. 删除测试
| 测试项 | 测试步骤 | 预期结果 | 实际结果 | 测试状态 |
|--------|---------|---------|---------|---------|
| 删除单条记录 | DELETE /ccdi/intermediary/{id} | 返回成功,数据删除 | | ⬜ 通过 / ❌ 失败 |
| 批量删除 | DELETE /ccdi/intermediary/{id1,id2} | 返回成功,多条数据删除 | | ⬜ 通过 / ❌ 失败 |
| 删除不存在的记录 | DELETE /ccdi/intermediary/{不存在的id} | 返回成功或提示 | | ⬜ 通过 / ❌ 失败 |
### 6. 导入导出测试
#### 6.1 模板下载
| 测试项 | 测试步骤 | 预期结果 | 实际结果 | 测试状态 |
|--------|---------|---------|---------|---------|
| 下载个人中介模板 | POST /importPersonTemplate | 下载Excel模板,包含下拉框 | | ⬜ 通过 / ❌ 失败 |
| 下载实体中介模板 | POST /importEntityTemplate | 下载Excel模板,包含下拉框 | | ⬜ 通过 / ❌ 失败 |
#### 6.2 数据导入
| 测试项 | 测试步骤 | 预期结果 | 实际结果 | 测试状态 |
|--------|---------|---------|---------|---------|
| 导入个人中介数据 | POST /importPersonData | 返回导入成功条数 | | ⬜ 通过 / ❌ 失败 |
| 导入实体中介数据 | POST /importEntityData | 返回导入成功条数 | | ⬜ 通过 / ❌ 失败 |
| 导入空数据 | 上传空Excel | 提示"没有数据" | | ⬜ 通过 / ❌ 失败 |
| 导入格式错误数据 | 上传格式错误的Excel | 提示格式错误 | | ⬜ 通过 / ❌ 失败 |
| 导入必填字段为空 | 上传姓名为空的Excel | 提示"姓名不能为空" | | ⬜ 通过 / ❌ 失败 |
| 更新已存在数据 | updateSupport=true | 更新已存在的记录 | | ⬜ 通过 / ❌ 失败 |
| 不更新已存在数据 | updateSupport=false | 跳过已存在的记录 | | ⬜ 通过 / ❌ 失败 |
#### 6.3 数据导出
| 测试项 | 测试步骤 | 预期结果 | 实际结果 | 测试状态 |
|--------|---------|---------|---------|---------|
| 导出全部数据 | POST /export | 下载包含所有数据的Excel | | ⬜ 通过 / ❌ 失败 |
| 按条件导出 | 带查询条件导出 | 下载符合条件的数据Excel | | ⬜ 通过 / ❌ 失败 |
### 7. 权限测试
| 测试项 | 测试步骤 | 预期结果 | 实际结果 | 测试状态 |
|--------|---------|---------|---------|---------|
| 无权限访问列表 | 无ccdi:intermediary:list权限 | 返回403或提示无权限 | | ⬜ 通过 / ❌ 失败 |
| 无权限新增 | 无ccdi:intermediary:add权限 | 返回403或提示无权限 | | ⬜ 通过 / ❌ 失败 |
| 无权限修改 | 无ccdi:intermediary:edit权限 | 返回403或提示无权限 | | ⬜ 通过 / ❌ 失败 |
| 无权限删除 | 无ccdi:intermediary:remove权限 | 返回403或提示无权限 | | ⬜ 通过 / ❌ 失败 |
| 无权限导出 | 无ccdi:intermediary:export权限 | 返回403或提示无权限 | | ⬜ 通过 / ❌ 失败 |
| 无权限导入 | 无ccdi:intermediary:import权限 | 返回403或提示无权限 | | ⬜ 通过 / ❌ 失败 |
---
## 测试结果统计
### 测试用例统计
| 类别 | 总数 | 通过 | 失败 | 通过率 |
|------|------|------|------|--------|
| 列表查询 | 7 | 0 | 0 | 0% |
| 个人中介管理 | 8 | 0 | 0 | 0% |
| 实体中介管理 | 7 | 0 | 0 | 0% |
| 唯一性校验 | 2 | 0 | 0 | 0% |
| 删除功能 | 3 | 0 | 0 | 0% |
| 导入导出 | 11 | 0 | 0 | 0% |
| 权限控制 | 6 | 0 | 0 | 0% |
| **合计** | **44** | **0** | **0** | **0%** |
### 缺陷统计
| 严重程度 | 数量 | 缺陷列表 |
|---------|------|---------|
| 严重 | 0 | |
| 重要 | 0 | |
| 一般 | 0 | |
| 轻微 | 0 | |
| **合计** | **0** | |
---
## 测试结论
### 整体评价
[待填写]
### 主要功能点测试结果
| 功能模块 | 测试结果 | 备注 |
|---------|---------|------|
| 列表查询 | | |
| 个人中介CRUD | | |
| 实体中介CRUD | | |
| 唯一性校验 | | |
| 导入导出 | | |
| 权限控制 | | |
### 发现的问题
#### 1. [问题标题]
- **问题描述**: [详细描述问题]
- **严重程度**: [严重/重要/一般/轻微]
- **复现步骤**:
1. [步骤1]
2. [步骤2]
3. [步骤3]
- **预期结果**: [预期结果]
- **实际结果**: [实际结果]
- **附件**: [截图或日志]
#### 2. [问题标题]
...
### 改进建议
1. [建议1]
2. [建议2]
3. [建议3]
---
## 测试附件
### 测试数据
| 数据类型 | 数据内容 |
|---------|---------|
| 测试个人中介bizId | [填写] |
| 测试实体中介信用代码 | [填写] |
| 测试证件号 | [填写] |
### 测试日志
```bash
# 测试脚本输出日志
[粘贴测试脚本的完整输出]
```
### 测试截图
- 图1: 列表查询成功截图
- 图2: 新增个人中介成功截图
- 图3: 新增实体中介成功截图
- 图4: 修改中介成功截图
- 图5: 删除中介成功截图
- 图6: 导入数据成功截图
- 图7: 导出数据成功截图
---
## 签名
| 角色 | 姓名 | 签名 | 日期 |
|------|------|------|------|
| 测试人员 | | | |
| 开发负责人 | | | |
| 产品负责人 | | | |
---
## 备注
1. 本测试报告基于中介黑名单管理模块v2.0版本
2. 测试环境为开发环境,生产环境部署前需再次测试
3. 所有测试用例均使用自动化测试脚本执行,可复现
4. 测试数据可在测试完成后清理
---
**报告生成时间**: [填写]
**报告版本**: v1.0