## 新增文件 ### 测试脚本 (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>
287 lines
11 KiB
Markdown
287 lines
11 KiB
Markdown
# 中介黑名单管理模块测试报告
|
|
|
|
## 测试概要
|
|
|
|
| 项目 | 内容 |
|
|
|------|------|
|
|
| 测试模块 | 中介黑名单管理 |
|
|
| 测试版本 | 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
|