This commit is contained in:
wkc
2026-07-02 16:48:17 +08:00
parent 979ed9669f
commit 87fb6443e6
27 changed files with 2167 additions and 0 deletions

View File

@@ -0,0 +1,138 @@
# 2026-04-21 中介库管理导入功能浏览器测试记录
## 1. 测试目标
- 在真实浏览器中验证“中介库管理”页面两类导入功能:
- 导入中介和亲属信息
- 导入中介实体关联关系
- 验证模板下载、模板改写、页面上传、异步导入结果展示、失败记录查看全链路可用。
## 2. 测试环境
- 前端地址:`http://localhost:62319`
- 后端地址:`http://127.0.0.1:62318`
- 登录方式:调用项目测试登录接口 `/login/test` 获取 token 后注入浏览器 Cookie
- 浏览器Playwright headed 模式
## 3. 下载模板
- 中介和亲属信息模板:
- 浏览器下载原始文件:`.playwright-cli/中介和亲属信息导入模板-1776735200748.xlsx`
- 中介实体关联关系模板:
- 浏览器下载原始文件:`.playwright-cli/中介实体关联关系导入模板-1776735620019.xlsx`
## 4. 生成测试文件
- 中介和亲属信息首轮混合测试文件:
- `output/spreadsheet/intermediary_person_import_browser_phase1.xlsx`
- 中介和亲属信息二轮库内重复测试文件:
- `output/spreadsheet/intermediary_person_import_browser_phase2_existing_db_cases.xlsx`
- 中介实体关联关系首轮混合测试文件:
- `output/spreadsheet/intermediary_enterprise_relation_import_browser_phase1.xlsx`
- 中介实体关联关系二轮库内重复测试文件:
- `output/spreadsheet/intermediary_enterprise_relation_import_browser_phase2_db_duplicate.xlsx`
## 5. 页面测试过程与结果
### 5.1 导入中介和亲属信息
#### 第一轮:混合成功/失败场景
- 上传文件:`output/spreadsheet/intermediary_person_import_browser_phase1.xlsx`
- 页面导入结果:
- 总数 `13`
- 成功 `4`
- 失败 `9`
- 页面列表确认新增成功数据:
- `自动化中介本人A`
- `自动化中介A配偶`
- `文件内重复本人1`
- `文件内重复亲属1`
#### 第一轮失败记录命中情况
- `本人行关联中介本人证件号码必须为空`
- `亲属行必须填写关联中介本人证件号码`
- `姓名不能为空`
- `人员子类型不能为空`
- `证件号码身份证号长度必须为18位`
- `中介本人证件号码[320101199503154560]在导入文件中重复`
- `关联中介本人证件号码[320101197704077654]不存在`
- `同一中介本人名下证件号码[320101199604102348]的亲属在导入文件中重复`
说明:
- 原计划用于命中“库内本人重复”的旧数据 `320101199904170833` 因系统内该历史证件号本身校验位不合法,页面实际先命中了证件号格式校验。
#### 第二轮:补齐库内重复分支
- 上传文件:`output/spreadsheet/intermediary_person_import_browser_phase2_existing_db_cases.xlsx`
- 页面导入结果:
- 总数 `2`
- 成功 `0`
- 失败 `2`
- 页面失败记录确认命中:
- `中介本人证件号码[46265019770816746X]已存在,请勿重复导入`
- `同一中介本人名下证件号码[320101199902033213]的亲属已存在,请勿重复导入`
### 5.2 导入中介实体关联关系
#### 第一轮:混合成功/失败场景
- 上传文件:`output/spreadsheet/intermediary_enterprise_relation_import_browser_phase1.xlsx`
- 页面导入结果:
- 总数 `11`
- 成功 `3`
- 失败 `8`
- 页面列表确认新增成功数据:
- `成都市资产企业 / 自动化中介本人A / 董事`
- `上海市资产企业 / 自动化中介本人A / 监事`
- `杭州市不动产合伙企业 / 自动化中介本人A / 法人`
#### 第一轮失败记录命中情况
- `中介本人证件号码不能为空`
- `中介本人证件号码身份证号长度必须为18位`
- `中介本人不存在,请先导入或维护中介本人信息`
- `统一社会信用代码不能为空`
- `统一社会信用代码不存在于系统机构表`
- `关联人职务长度不能超过100个字符`
- `备注长度不能超过500个字符`
- `同一中介本人与统一社会信用代码组合在导入文件中重复`
#### 第二轮:补齐库内关系重复分支
- 上传文件:`output/spreadsheet/intermediary_enterprise_relation_import_browser_phase2_db_duplicate.xlsx`
- 页面导入结果:
- 总数 `1`
- 成功 `0`
- 失败 `1`
- 页面失败记录确认命中:
- `中介实体关联关系已存在,请勿重复导入`
## 6. 结论
- 两类导入功能的模板下载、模板改写、页面上传、异步轮询、失败记录弹窗均可正常工作。
- 中介和亲属信息导入已覆盖:
- 成功导入
- 本人行关联字段错误
- 亲属缺少关联本人
- 姓名为空
- 人员子类型为空
- 证件号非法
- 文件内本人重复
- 关联本人不存在
- 文件内亲属重复
- 库内本人重复
- 库内亲属重复
- 中介实体关联关系导入已覆盖:
- 成功导入
- 中介本人为空
- 中介本人证件号非法
- 中介本人不存在
- 统一社会信用代码为空
- 统一社会信用代码不存在
- 关联人职务超长
- 备注超长
- 文件内关系重复
- 库内关系重复

View File

@@ -0,0 +1,196 @@
# 2026-04-22 员工信息维护真实页面综合测试记录
## 1. 测试目标
- 在真实浏览器中进入“信息维护-员工信息维护”页面,验证页面可访问、列表可加载、关键接口可正常返回。
- 覆盖员工信息维护核心业务链路:
- 列表加载
- 详情查看
- 新增
- 编辑
- 删除
- 导入模板下载
- 双 Sheet Excel 导入
- 员工导入失败记录查看
- 员工资产导入失败记录查看
- 测试结束后清理本轮新增/导入成功数据,并清理页面本地导入缓存。
## 2. 测试环境
- 前端地址:`http://127.0.0.1:1025`
- 后端地址:`http://127.0.0.1:62318`
- Mock 服务:`http://127.0.0.1:8000`
- 前端 Node 版本:`nvm use 14.21.3`
- 浏览器Playwright headed 模式真实浏览器
- 登录方式:先调用测试登录接口获取 token再向真实浏览器注入 `Admin-Token` cookie
- 测试页面:`http://127.0.0.1:1025/maintain/baseStaff`
## 3. 测试文件
- 页面下载模板:
- `/Users/wkc/Desktop/ccdi/ccdi/output/playwright/base-staff-maintenance-test/.playwright-cli/员工信息维护导入模板-1776851234493.xlsx`
- 生成导入样本:
- `/Users/wkc/Desktop/ccdi/ccdi/output/spreadsheet/base_staff_import_browser_mixed.xlsx`
- Playwright 上传副本:
- `/Users/wkc/Desktop/ccdi/ccdi/output/playwright/base-staff-maintenance-test/base_staff_import_browser_mixed.xlsx`
## 4. 页面测试过程与结果
### 4.1 页面进入与基础加载
- 进入“信息维护-员工信息维护”页面后,菜单高亮、面包屑、查询区、列表区展示正常。
- Playwright 网络面板确认关键请求返回 `200`
- `/dev-api/getInfo`
- `/dev-api/getRouters`
- `/dev-api/ccdi/baseStaff/list`
- `/dev-api/system/user/deptTree`
- 页面列表初始总数为:
- `共 1014 条`
### 4.2 新增
- 新增员工:
- 姓名:`浏览器员工测试A-0422`
- 柜员号:`9260422`
- 所属部门:`若依科技`
- 身份证号:`330101199206150012`
- 电话:`13926042222`
- 年收入:`246800.50`
- 入职时间:`2026-04-22`
- 是否党员:`是`
- 状态:`在职`
- 同时新增两条资产:
- `房产 / 住宅 / 浏览器测试住房A / 当前估值 860000 / 状态 正常 / 备注 新增资产A`
- `车辆 / 轿车 / 浏览器测试车辆B / 当前估值 188000 / 状态 正常 / 备注 新增资产B`
- 保存后验证通过:
- 新增员工进入列表首行
- 列表总数从 `1014` 增加到 `1015`
### 4.3 新增后详情复验
- 打开新增员工详情后验证通过:
- 基本信息可正常展示
- 资产明细展示 2 条
- 资产名称、估值、状态、备注与录入一致
### 4.4 编辑
- 编辑同一员工,修改内容:
- 姓名改为 `浏览器员工测试A-0422-已改`
- 电话改为 `13926042224`
- 年收入改为 `268000`
- 删除“房产 / 住宅”资产,仅保留“车辆 / 轿车”资产
- 保留资产状态改为 `冻结`
- 保留资产备注改为 `编辑后保留资产`
- 保存后验证通过:
- 列表首行姓名、电话、年收入已同步更新
- 详情中仅剩 1 条原有资产
- 保留资产状态显示 `冻结`
- 保留资产备注显示 `编辑后保留资产`
### 4.5 导入模板下载
- 在真实页面导入弹窗中点击“下载模板”。
- 下载结果正常,模板包含两个 Sheet
- `员工信息`
- `员工资产信息`
### 4.6 双 Sheet 导入
- 使用 `base_staff_import_browser_mixed.xlsx` 发起双 Sheet 导入。
- 员工信息 Sheet
- 成功样本:`浏览器导入员工B-0422 / 9260423`
- 失败样本:`浏览器导入失败员工-0422 / 9033101`
- 员工资产信息 Sheet
- 成功样本:向员工 `330101199206150012` 导入资产 `导入资产车位A-0422`
- 失败样本:使用不存在证件号 `330101199206150063`
- 导入提交后页面提示:
- `导入任务已提交`
- 导入完成后验证通过:
- 页面出现“查看导入失败记录”
- 页面出现“查看员工资产导入失败记录”
- 成功导入员工 `9260423` 进入列表
- 列表总数从 `1015` 增加到 `1016`
### 4.7 员工导入失败记录
- 打开“查看导入失败记录”弹窗。
- 页面失败记录命中:
- Sheet`员工信息`
- Excel 行号:`3`
- 姓名:`浏览器导入失败员工-0422`
- 柜员号:`9033101`
- 失败原因:`该员工ID已存在`
- 说明员工导入失败记录展示链路正常。
### 4.8 员工资产导入失败记录
- 打开“查看员工资产导入失败记录”弹窗。
- 页面失败记录命中:
- Sheet`员工资产信息`
- Excel 行号:`3`
- 资产实际持有人身份证号:`330101199206150063`
- 资产名称:`导入失败资产-0422`
- 失败原因:`员工资产导入仅支持员工本人证件号`
- 说明员工资产导入失败记录展示链路正常。
### 4.9 导入成功数据复验
- 再次打开员工 `9260422` 的详情。
- 验证通过:
- 新导入资产 `房产 / 车位 / 导入资产车位A-0422` 已展示
- 当前估值显示 `235000`
- 资产状态显示 `正常`
- 备注显示 `页面上传成功资产`
- 编辑后保留的车辆资产仍存在
### 4.10 删除与清理
- 通过真实页面删除以下两条本轮测试产生的成功数据:
- 导入成功员工:`9260423`
- 页面新增员工:`9260422`
- 删除过程均经过二次确认弹窗,页面提示 `删除成功`
- 清理完成后验证通过:
- 列表总数回到 `共 1014 条`
- 页面中已无 `9260422``9260423`
- 清理本地导入任务缓存:
- 已移除 `localStorage` 中的 `employee_import_last_task`
- 已移除 `localStorage` 中的 `employee_asset_import_last_task`
- 页面刷新后:
- “查看导入失败记录”按钮已消失
- “查看员工资产导入失败记录”按钮已消失
## 5. 发现的问题
- 员工详情弹窗“所属部门”显示异常。
- 复现方式:
- 新增或编辑员工后,列表中“所属部门”正常显示为 `若依科技`
- 打开同一员工详情,字段“所属部门”显示为 `-`
- 影响判断:
- 属于真实功能问题,影响详情信息一致性
- 不影响本次新增、编辑、导入、删除主流程完成
## 6. 结论
- 员工信息维护模块在真实页面下的核心链路已完整验证:
- 列表加载
- 详情查看
- 新增
- 编辑
- 删除
- 导入模板下载
- 双 Sheet 导入
- 员工导入失败记录查看
- 员工资产导入失败记录查看
- 本轮测试发现 1 个非阻断性功能问题:
- 员工详情弹窗所属部门未正确回显
- 本轮新增和导入成功数据已全部清理,页面本地导入缓存已清空。
## 7. 测试收尾
- 已清理本轮新增/导入成功业务数据。
- 已清理前端本地导入任务缓存。
- 待测试完成后关闭:
- Playwright 浏览器会话
- 前端 `npm run dev -- --port 1025` 进程
- 本轮通过 `bin/restart_java_backend.sh` 拉起的后端进程

View File

@@ -0,0 +1,170 @@
# 2026-04-22 招投标信息维护真实页面综合测试记录
## 1. 测试目标
- 在真实浏览器中进入“信息维护-招投标信息维护”页面,验证页面可访问、列表可加载、无明显前端报错。
- 覆盖招投标信息维护核心业务链路:
- 列表加载
- 条件查询
- 详情查看
- 新增
- 编辑
- 删除
- 导入模板下载
- 双 Sheet Excel 导入
- 导入失败记录查看
- 测试结束后清理本轮新增/导入成功数据,并关闭测试过程启动的前端进程与浏览器会话。
## 2. 测试环境
- 前端地址:`http://localhost:62319`
- 后端地址:`http://127.0.0.1:62318`
- Mock 服务:`http://127.0.0.1:8000`
- 前端 Node 版本:`nvm use 14.21.3`
- 浏览器Playwright headed 模式真实浏览器
- 登录方式:通过真实登录页使用预填测试账号 `admin / admin123` 登录后进入页面
- 测试页面:`http://localhost:62319/maintain/purchaseTransaction`
## 3. 测试文件
- 页面下载模板:
- `/Users/wkc/Desktop/ccdi/ccdi/output/playwright/bidding-maintenance-test/.playwright-cli/招投标信息维护导入模板-1776842565558.xlsx`
- 生成导入样本:
- `/Users/wkc/Desktop/ccdi/ccdi/output/spreadsheet/bidding_info_import_browser_mixed.xlsx`
- Playwright 上传副本:
- `/Users/wkc/Desktop/ccdi/ccdi/output/playwright/bidding-maintenance-test/bidding_info_import_browser_mixed.xlsx`
## 4. 页面测试过程与结果
### 4.1 页面进入与基础加载
- 从真实登录页登录后,通过顶部菜单进入“信息维护-招投标信息维护”。
- 页面面包屑、菜单高亮、列表列头显示正常。
- 关键列表列正常展示:
- `中标供应商`
- `参与供应商数`
- `预算金额(元)`
- Playwright 网络面板确认首屏关键请求均返回 `200`
- `/dev-api/getInfo`
- `/dev-api/getRouters`
- `/dev-api/ccdi/purchaseTransaction/list`
- Playwright 控制台未发现 warning。
### 4.2 详情查看
- 打开首条现有记录详情:
- `LSFXMOCKP2PUR001`
- 验证通过:
- 基本信息、金额信息、重要日期、申请人信息正常展示
- 供应商明细表正常展示
- 供应商排序、中标标识、统一信用代码、联系人、联系电话、银行账户展示正确
### 4.3 新增
- 新增测试单据:
- 采购事项ID`AUTOBID20260422151036`
- 项目名称:`自动化招投标测试项目-1036`
- 新增时录入两条供应商:
- `杭州自动化供应商A有限公司`
- `杭州自动化供应商B有限公司`
- 将第 2 条供应商标记为中标后提交成功。
- 列表校验通过:
- 新增记录进入列表首行
- `中标供应商` 显示为 `杭州自动化供应商B有限公司`
- `参与供应商数` 显示为 `2`
- `预算金额(元)`、申请人、申请部门、申请日期与录入一致
### 4.4 新增后详情复验
- 打开新增记录详情后验证通过:
- 两条供应商都在详情表中展示
- 第 1 条显示 `参标`
- 第 2 条显示 `中标`
- 排序、联系人、联系电话、银行账户与录入一致
- 全部重要日期、采购负责人信息正确回显
### 4.5 编辑
- 编辑同一条测试单据,修改内容:
- 项目名称改为 `自动化招投标测试项目-1036-已改`
- 标的物名称改为 `服务器及配件-1036-复核`
- 预算金额改为 `258000`
- 将中标供应商从 `杭州自动化供应商B有限公司` 切换为 `杭州自动化供应商A有限公司`
- 保存后列表校验通过:
- 项目名称、标的物名称、预算金额已更新
- `中标供应商` 摘要同步更新为 `杭州自动化供应商A有限公司`
- `参与供应商数` 仍为 `2`
### 4.6 条件查询
- 以编辑后的项目名称 `自动化招投标测试项目-1036-已改` 进行查询。
- 查询结果:
- 分页总数显示 `共 1 条`
- 列表首条采购事项ID为 `AUTOBID20260422151036`
- 说明项目名称条件查询可正常命中目标记录。
### 4.7 导入模板下载
- 在真实页面导入弹窗中点击“下载模板”。
- 下载结果正常,模板包含两个 Sheet
- `招投标主信息`
- `供应商明细`
### 4.8 导入
- 使用自制双 Sheet 测试文件 `bidding_info_import_browser_mixed.xlsx` 发起导入。
- 测试文件包含 2 个采购事项ID
- 成功样本:`IMPBID20260422152321A`
- 失败样本:`IMPBID20260422152321B`
- 导入后页面结果验证通过:
- 成功样本进入列表
-`中标供应商` 显示为 `导入供应商乙有限公司`
-`参与供应商数` 显示为 `2`
- 页面出现“查看导入失败记录”按钮
### 4.9 导入失败记录
- 打开“查看导入失败记录”弹窗。
- 页面失败记录命中:
- 采购事项ID`IMPBID20260422152321B`
- 项目名称:`导入失败项目-152321`
- 标的物名称:`失败样例设备-152321`
- 失败原因:`申请人工号必须为7位数字`
- 说明导入失败记录分页、失败原因展示链路正常。
### 4.10 删除与清理
- 通过真实页面删除以下两条本轮测试产生的成功数据:
- `AUTOBID20260422151036`
- `IMPBID20260422152321A`
- 删除时均经过页面二次确认弹窗,删除成功后搜索结果回到 `共 0 条`
- 清理本地导入任务缓存:
- 已移除 `localStorage` 中的 `purchase_transaction_import_last_task`
- 页面刷新后,“查看导入失败记录”按钮已消失。
- 最终列表总数恢复为:
- `共 2004 条`
## 5. 结论
- 招投标信息维护模块在真实页面下的核心链路测试通过。
- 本次已覆盖:
- 页面进入与真实登录
- 列表展示
- 条件查询
- 详情查看
- 新增
- 编辑
- 删除
- 导入模板下载
- 双 Sheet 导入
- 导入失败记录查看
- 本轮测试未发现阻断性缺陷。
- 本轮新增和导入成功的数据已清理,列表总数已回到测试前水平。
## 6. 测试收尾
- 已清理本轮新增/导入成功业务数据。
- 已清理前端本地导入任务缓存。
- 待测试完成后关闭:
- Playwright 浏览器会话
- 前端 `npm run dev` 进程

View File

@@ -0,0 +1,50 @@
# 员工亲属实体关联真实页面测试记录
## 测试时间
2026-04-24 13:32
## 测试范围
- 页面:员工亲属实体关联
- 实际访问地址:`http://localhost:8080/maintain/staffEnterpriseRelation`
- 后端接口代理:`http://localhost:8080/dev-api`
- 登录账号:`admin`
## 环境信息
- 后端:本地 `62318` 端口已启动
- 前端:`ruoyi-ui` 使用 `.nvmrc` 指定的 Node `14.21.3`,执行 `npm run dev -- --port 8080 --open false`
- 浏览器Playwright 启动本机 Google Chrome访问真实业务页面
## 测试数据
- 选择的有效亲属:`320101199201010051 LSFX低收入亲属 / 导入验证员工20260317`
- 测试统一社会信用代码:`91756899ABCDEFGH12`
- 测试企业名称:`自动化测试亲属实体企业56899`
- 测试职务:`自动化测试职务`
- 编辑后职务:`自动化测试职务-已编辑`
## 测试步骤与结果
1. 打开真实业务页面,确认员工亲属实体关联列表加载成功。
2. 点击“新增”,通过亲属身份证号下拉选择有效员工亲属,确认亲属姓名与关联员工自动带出。
3. 填写统一社会信用代码、企业名称、职务、补充说明并提交,页面提示“新增成功”。
4. 按企业名称搜索,确认新增记录展示在列表中,并包含企业名称、职务和关联员工信息。
5. 打开“详情”,确认详情弹窗展示亲属身份证号、亲属姓名、关联员工、统一社会信用代码、企业名称、职务、状态、数据来源和补充说明。
6. 点击“编辑”,修改职务后提交,页面提示“修改成功”,列表展示编辑后的职务。
7. 再次新增同一亲属身份证号与同一统一社会信用代码组合,确认页面拦截并提示“该亲属身份证号和统一社会信用代码组合已存在”。
8. 删除本轮新增记录,页面提示“删除成功”,完成测试数据清理。
9. 测试结束后通过后端列表接口按测试企业名称复核,返回 `total = 0`,确认本轮测试数据已清理。
## 验证结论
- 员工亲属实体关联主链路通过。
- 有效亲属下拉搜索、自动带出关联员工、新增、查询、详情、编辑、重复组合校验、删除清理均符合预期。
- 测试过程中未发现浏览器控制台错误。
- 测试过程中未发现失败请求。
## 测试产物
- 页面截图位于 `output/playwright/`,文件名前缀为 `staff-family-enterprise-*2026-04-24T05-32-31-510Z.png`
- 临时 Playwright 脚本位于 `output/playwright/staff-family-enterprise-relation-browser-test.js`,该目录为测试输出目录,不纳入 Git 提交范围。

View File

@@ -0,0 +1,60 @@
# 员工亲属实体关联导入真实页面测试记录
## 测试时间
2026-04-24 13:38
## 测试范围
- 页面:员工亲属实体关联
- 实际访问地址:`http://localhost:8080/maintain/staffEnterpriseRelation`
- 导入接口:`/ccdi/staffEnterpriseRelation/importData`
- 导入状态接口:`/ccdi/staffEnterpriseRelation/importStatus/{taskId}`
- 失败记录接口:`/ccdi/staffEnterpriseRelation/importFailures/{taskId}`
## 环境信息
- 后端:本地 `62318` 端口既有进程
- 前端:`ruoyi-ui` 使用 `.nvmrc` 指定的 Node `14.21.3`,执行 `npm run dev -- --port 8080 --open false`
- 浏览器Playwright 启动本机 Google Chrome访问真实业务页面
## 测试数据
- 有效亲属:`320101199201010051 LSFX低收入亲属 / 导入验证员工20260317`
- 成功记录统一社会信用代码:`91141873ABCDEFGH12`
- 成功记录企业名称:`导入测试亲属实体企业141873`
- 成功记录职务:`导入测试职务`
- 失败记录场景:同一导入文件内重复 `亲属身份证号 + 统一社会信用代码` 组合
## 测试步骤与结果
1. 打开真实业务页面,点击“导入”,确认弹出“员工亲属实体关联数据导入”弹窗。
2. 在导入弹窗中点击“下载模板”,下载当前页面模板文件。
3. 基于下载的模板生成测试文件,写入两条数据:
- 第 1 条为有效亲属 + 唯一统一社会信用代码,预期成功。
- 第 2 条与第 1 条使用相同亲属身份证号和统一社会信用代码,预期文件内重复失败。
4. 在真实页面上传该测试文件并点击“确定”,页面提示“员工亲属实体关联导入任务已提交”。
5. 等待页面异步轮询完成,出现“查看导入失败记录”按钮,说明本轮为部分成功。
6. 按成功记录企业名称查询列表,确认成功导入记录展示在列表中。
7. 打开成功记录详情,确认统一社会信用代码 `91141873ABCDEFGH12` 与导入来源展示正确。
8. 点击“查看导入失败记录”,确认失败记录弹窗展示重复组合错误:`组合在导入文件中重复`
9. 删除本轮成功导入记录,页面提示“删除成功”。
10. 测试结束后通过后端列表接口按测试企业名称复核,返回 `total = 0`,确认本轮成功写入数据已清理。
## 验证结论
- 导入模板下载正常。
- 基于当前模板生成的导入文件可被页面上传并提交。
- 异步导入轮询、部分成功提示、失败记录按钮恢复与失败记录弹窗均符合预期。
- 成功记录可入库并在列表/详情中查询到。
- 文件内重复组合被正确拦截,失败原因展示准确。
- 测试过程中未发现浏览器控制台错误。
- 测试过程中未发现失败请求。
- 本轮成功写入的测试数据已删除清理。
## 测试产物
- 下载模板:`output/playwright/staff-family-enterprise-import-template-2026-04-24T05-38-57-495Z.xlsx`
- 导入样本:`output/playwright/staff-family-enterprise-import-sample-2026-04-24T05-38-57-495Z.xlsx`
- 页面截图位于 `output/playwright/`,文件名前缀为 `staff-family-enterprise-import-*2026-04-24T05-38-57-495Z.png`
- 临时 Playwright 脚本位于 `output/playwright/staff-family-enterprise-relation-import-browser-test.js`,该目录为测试输出目录,不纳入 Git 提交范围。

View File

@@ -0,0 +1,84 @@
# 员工亲属实体关联导入全场景真实页面测试记录
## 测试时间
2026-04-26 16:02
## 测试范围
- 页面:员工亲属实体关联
- 实际访问地址:`http://localhost:8080/maintain/staffEnterpriseRelation`
- 导入接口:`/ccdi/staffEnterpriseRelation/importData`
- 导入状态接口:`/ccdi/staffEnterpriseRelation/importStatus/{taskId}`
- 失败记录接口:`/ccdi/staffEnterpriseRelation/importFailures/{taskId}`
## 环境信息
- 后端:本地 `62318` 端口既有进程
- 前端:`ruoyi-ui` 使用 `.nvmrc` 指定的 Node `14.21.3`,执行 `npm run dev -- --port 8080 --open false`
- 浏览器Playwright 启动本机 Google Chrome访问真实业务页面
## 前置数据
- 有效亲属:`320101199201010051 LSFX低收入亲属 / 导入验证员工20260317`
- 临时无效亲属:`320101199801010421`
- 测试企业名前缀:`全场景导入测试企业520344`
## 覆盖场景
1. 空模板
- 行数0
- 预期:页面提示 `至少需要一条数据`
- 结果:通过
2. 基础校验失败
- 行数9
- 覆盖:
- 亲属身份证号为空
- 统一社会信用代码为空
- 企业名称为空
- 亲属身份证号格式错误
- 统一社会信用代码格式错误
- 亲属身份证号不存在
- 亲属身份证号不是有效员工亲属
- 企业名称长度超过 200 个字符
- 关联人在企业的职务长度超过 100 个字符
- 结果:成功 0 条,失败 9 条,失败记录弹窗逐项展示对应原因
3. 全成功
- 行数3
- 结果:成功 3 条,失败 0 条,列表可查询到成功导入记录
4. 成功失败混合
- 行数5
- 覆盖:
- 2 条有效数据成功导入
- 文件内重复 `亲属身份证号 + 统一社会信用代码` 组合
- 亲属身份证号不存在
- 统一社会信用代码格式错误
- 结果:成功 2 条,失败 3 条,成功记录可查询,失败记录弹窗展示对应原因
5. 已存在组合
- 行数1
- 前置:使用混合场景已成功导入的组合
- 预期:拦截已存在的 `亲属身份证号 + 统一社会信用代码` 组合
- 结果:成功 0 条,失败 1 条,失败记录展示 `组合已存在,请勿重复导入`
## 验证结论
- 导入模板下载正常。
- 基于当前页面模板生成的多份测试文件均可在真实页面上传。
- 空模板、基础字段校验、有效亲属校验、文件内重复、库内已存在组合、全成功、成功失败混合均已覆盖。
- 异步导入轮询、成功统计、失败统计、失败记录按钮和失败记录弹窗均符合预期。
- 成功导入记录能够在列表查询到。
- 本轮成功写入的 5 条测试数据已删除。
- 本轮临时新增的无效亲属前置数据已删除。
- 后端接口复核测试企业名前缀返回 `total = 0`
- 浏览器控制台无错误。
- 测试过程中无失败请求。
## 测试产物
- 下载模板:`output/playwright/staff-family-enterprise-allcases-template-2026-04-26T08-02-00-344Z.xlsx`
- 场景样本文件与截图位于 `output/playwright/`,文件名前缀为 `staff-family-enterprise-allcases-*2026-04-26T08-02-00-344Z`
- 临时 Playwright 脚本位于 `output/playwright/staff-family-enterprise-relation-import-all-cases-browser-test.js`,该目录为测试输出目录,不纳入 Git 提交范围。