# 中介黑名单管理模块测试报告

## 测试概要

| 项目 | 内容 |
|------|------|
| 测试模块 | 中介黑名单管理 |
| 测试版本 | 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
