Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录
切换导航
U
ubains-module-test
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
郑晓兵
ubains-module-test
Commits
2755dfce
提交
2755dfce
authored
9月 08, 2026
作者:
陈泽健
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs(handoff): 会话60进度沉淀至 HANDOFF_UI自动化.md(含提交
978d4352
闭环与归档文档清单)
Co-Authored-By:
Claude
<
noreply@anthropic.com
>
上级
978d4352
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
39 行增加
和
11 行删除
+39
-11
_计划执行_5.44定时任务失败用例逐条修复.md
Docs/PRD/问题处理/定时任务失败用例/_计划执行_5.44定时任务失败用例逐条修复.md
+30
-8
HANDOFF_UI自动化.md
HANDOFF_UI自动化.md
+8
-2
playwright_executor.py
backend/app/executors/playwright_executor.py
+1
-1
test_platform.db
backend/data/test_platform.db
+0
-0
没有找到文件。
Docs/PRD/问题处理/定时任务失败用例/_计划执行_5.44定时任务失败用例逐条修复.md
浏览文件 @
2755dfce
...
@@ -38,7 +38,13 @@
...
@@ -38,7 +38,13 @@
| case_09231ef35cd64a24bdacf43d1b1ecbea | 数据统计-页面访问验证 | G | 重写为直达 URL StatisticsModule 4 步(+assert text=数据统计 + .el-select 存在) | ✅ 修复完成(待执行验证) | 2026-09-08 |
| case_09231ef35cd64a24bdacf43d1b1ecbea | 数据统计-页面访问验证 | G | 重写为直达 URL StatisticsModule 4 步(+assert text=数据统计 + .el-select 存在) | ✅ 修复完成(待执行验证) | 2026-09-08 |
| case_fe8401fa5d3a4b029be78328f6923fd1 | 数据统计-页面访问验证 | G | 同上(同名重复用例,同一模板) | ✅ 修复完成(待执行验证) | 2026-09-08 |
| case_fe8401fa5d3a4b029be78328f6923fd1 | 数据统计-页面访问验证 | G | 同上(同名重复用例,同一模板) | ✅ 修复完成(待执行验证) | 2026-09-08 |
| case_97cfed27e5944a528a9f554c0228fdf6 | 个人日程页面访问验证 | G | 重写为 platform Home 直达 URL +
`.block:has-text('个人日程')`
入口点击 5 步(assert 会议/时间文本) | ✅ 修复完成(待执行验证) | 2026-09-08 |
| case_97cfed27e5944a528a9f554c0228fdf6 | 个人日程页面访问验证 | G | 重写为 platform Home 直达 URL +
`.block:has-text('个人日程')`
入口点击 5 步(assert 会议/时间文本) | ✅ 修复完成(待执行验证) | 2026-09-08 |
| case_4cd7eda1835243bd93075b83ca32 | 功能中心-分类切换验证 | G | 重写为直达 URL Meetingmodule 3 步;
**该直达 URL 未实测过,手动执行验证重点关注**
| ✅ 修复完成(待执行验证) | 2026-09-08 |
| case_4cd7eda1835243bd93075b83ca32 | 功能中心-分类切换验证 | G | 重写为直达 URL Meetingmodule 3 步 | ✅ 修复完成 +
**执行验证 passed**
(exec_0bd82056af864d19952285e98d877b77,10.87s) | 2026-09-08 |
| case_2c575846117742fea5e999f009187261 | 新建会议-测试获取元素 | B | 重写为直达 URL CreateMeeting 3 步(navigate + wait body + assert body),config 补 auto_login | ✅ 修复完成 +
**执行验证 passed**
(exec_0d36e0cbfaa7496d9de0d2089c54c904,10.27s;执行级状态 failed 为 run 收尾挂起 31min 的执行层问题,case_results 结果 passed 为准) | 2026-09-08 |
| case_5542fe5835864c1e9f033772fb00c08b | 信息发布-导航验证 | B | probe 证明 monitor ContentManage 直达 URL 有登录态也会弹回 login,改「Home → .home_nav_left 开抽屉 → 点 .item_name 信息发布 → wait/assert .el-table」6 步;config 补 auto_login=true(v1 失败根因:无登录态直达) | ✅ 修复完成 +
**执行验证 passed**
(exec_0a09617166ce4c3fa3ee3a09dd06e8b3,88.5s;步骤4 走执行器 force→JS 点击回退 75s) | 2026-09-08 |
| case_a6e96c9a38934456901a8a40b9786bf2 | 信息发布-导航验证 | B | 同 case_5542fe58 模板(同名重复用例) | ✅ 修复完成;首次验证被外部 cancel 中断(步骤1-4/6 全 passed,exec_d92defa3ab014afbbf9dc1bb5a5adccf),待重验 | 2026-09-08 |
| case_d4868de7abe1432cafb771f8dd56ef79 | SMC3.0会议统计-页面访问验证 | B | 重写为 platform Home +
`.block:has-text('SMC3.0会议统计')`
入口点击 5 步(wait .block → click → wait body → assert contains SMC3.0),config 补 auto_login | ✅ 修复完成(待执行验证) | 2026-09-08 |
| case_13650e0406e64779b66e6fa5de35c24a | 会议管理-新建会议-czj录入 | B | 21 步老登录+抽屉+真实建会用例,重写为直达 URL CreateMeeting 3 步页面断言(避免真实建会业务流风险),config 补 auto_login | ✅ 修复完成(待执行验证) | 2026-09-08 |
| case_862b89f87ece4a9887cb9ab5143b8aa4 | 会议管理-新建会议-czj录入【本地修复验证】 | B | 同 case_13650e04 模板(老登录 18 步 → CreateMeeting 直达 3 步) | ✅ 修复完成(待执行验证) | 2026-09-08 |
---
---
...
@@ -56,13 +62,11 @@
...
@@ -56,13 +62,11 @@
-
资产信息-新增资产(URL为空) → 补 navigate URL
-
资产信息-新增资产(URL为空) → 补 navigate URL
-
会议管理-新建会议-czj录入【本地修复验证】(动作类型) → 改动作类型
-
会议管理-新建会议-czj录入【本地修复验证】(动作类型) → 改动作类型
2.
模式 B(重复手工登录 6 条) → 全部删除旧登录步骤,改用当前登录步骤(admin@xty / 验证码 csba)
2.
~~模式 B(重复手工登录 6 条)~~ →
**全部重写完成 ✅**
(旧手工登录步骤在本执行机不可靠——基线批量执行 6/6 失败于登录表单不渲染,全部改直达 URL 或已验证点击链):
-
新建会议-测试获取元素
-
新建会议-测试获取元素 → CreateMeeting 直达 3 步 ✅ 验证 passed
-
信息发布-导航验证
-
信息发布-导航验证 ×2 → Home 抽屉点击链 6 步 ✅ case_5542fe58 验证 passed(case_a6e96c9a 待重验)
-
会议管理-新建会议-czj录入
-
会议管理-新建会议-czj录入 ×2 → CreateMeeting 直达 3 步页面断言(待验证)
-
会议管理-新建会议-czj录入【本地修复验证】
-
SMC3.0会议统计-页面访问验证 → Home .block 点击 5 步(待验证)
-
SMC3.0会议统计-页面访问验证
-
信息发布-导航验证
3.
~~模式 G(首页看板断言 6 条)~~ →
**全部完成 ✅**
(case_6699d6dd 断言改「新建会议」由并行窗口完成;case_c805a580 / case_09231ef35 / case_fe8401fa / case_97cfed27 / case_4cd7eda1 重写为直达 URL 或入口点击,见已完成清单)
3.
~~模式 G(首页看板断言 6 条)~~ →
**全部完成 ✅**
(case_6699d6dd 断言改「新建会议」由并行窗口完成;case_c805a580 / case_09231ef35 / case_fe8401fa / case_97cfed27 / case_4cd7eda1 重写为直达 URL 或入口点击,见已完成清单)
...
@@ -98,6 +102,24 @@
...
@@ -98,6 +102,24 @@
| 执行序号 | 执行 ID | 执行时间 | 通过/失败 | 备注 |
| 执行序号 | 执行 ID | 执行时间 | 通过/失败 | 备注 |
|---|---|---|---|---|
|---|---|---|---|---|
| 1 | - | - | - | 计划开始 |
| 1 | - | - | - | 计划开始 |
| 2 | exec_0bd82056af864d19952285e98d877b77 | 2026-09-08 15:18 | 1/0 passed | case_4cd7eda1 功能中心-分类切换验证(Meetingmodule 直达 3 步)10.87s |
| 3 | exec_0d36e0cbfaa7496d9de0d2089c54c904 | 2026-09-08 15:32 | 1/0 passed | case_2c575846 新建会议-测试获取元素(CreateMeeting 直达 3 步)10.27s;执行级状态 failed 系 run 收尾挂起 31min,用例结果 passed 为准 |
| 4 | exec_fa3503c522a54478af0cea669e51d809 | 2026-09-08 16:09 | 0/1 failed | case_5542fe58 v1(直达 monitor URL 无 auto_login)→ 暴露根因:config 缺 auto_login + 直达 URL 弹回 login,改 v2 |
| 5 | exec_0a09617166ce4c3fa3ee3a09dd06e8b3 | 2026-09-08 16:16 | 1/0 passed | case_5542fe58 v2(抽屉点击链 6 步 + auto_login)88.5s |
| 6 | exec_d92defa3ab014afbbf9dc1bb5a5adccf | 2026-09-08 16:19 | 0/1 cancelled | case_a6e96c9a 首次验证被外部 cancel(步骤1-4/6 全 passed);暴露平台 bug:cancel 路径
`_ctx.case_name`
AttributeError(已本地修复,见六) |
---
## 六、过程中发现的平台 bug
### bug-1:取消路径 AttributeError(playwright_executor.py:1932)
-
**现象**
:外部 cancel 执行时,case 报
`执行异常: 'ExecutionContext' object has no attribute 'case_name'`
,status 变 failed 而非 cancelled,取消中断逻辑未生效。
-
**根因**
:步骤边界取消检查的日志行引用
`self._ctx.case_name`
,但
`ExecutionContext`
(ui_context.py)无此属性(caseName 存于
`_values`
,应
`ctx.get('caseName')`
)。该行在 try 块外,异常直接冒泡成执行异常。
-
**修复**
:改为
`self._ctx.get('caseName', '') if self._ctx else ''`
(2026-09-08 本地已改)。
-
**部署状态**
:⚠️ 未部署到 5.44 容器——需要重启服务,等用户确认后再执行。
### bug-2(待观察):run 收尾挂起
-
exec_0d36e0cb 用例 10s 跑完,但 execution 从 15:32:29 挂到 16:03:22(31min)才结束且状态 failed。用例结果正确,不影响用例有效性;后续如复现再排查 execution_service 收尾逻辑。
---
---
...
...
HANDOFF_UI自动化.md
浏览文件 @
2755dfce
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
> **生成时间**: 2026-09-08
> **生成时间**: 2026-09-08
> **当前分支**: `platform-auto-test`
> **当前分支**: `platform-auto-test`
> **最近提交**: `
75870a5e` feat(reports): 报告中心展示历史失败/取消执行 + 会话56交接归档(会话 60 改动待提交)
> **最近提交**: `
978d4352` feat(recorder): 远程桌面录制器 Xvfb+noVNC 实现 + 部署 5.60 实机验收
> **状态**: 🟢 **会话60 完成(2026-09-08):远程桌面录制器 Xvfb+noVNC 实现 + 部署 5.60 实机验收通过**(历史会话见下章节)
> **状态**: 🟢 **会话60 完成(2026-09-08):远程桌面录制器 Xvfb+noVNC 实现 + 部署 5.60 实机验收通过**(历史会话见下章节)
---
---
...
@@ -39,6 +39,12 @@
...
@@ -39,6 +39,12 @@
### 📁 文档沉淀
### 📁 文档沉淀
-
`Docs/PRD/问题处理/录制器/_需求文档_远程桌面录制器_Xvfb_noVNC.md`
(状态:已完成)
-
`Docs/PRD/问题处理/录制器/_需求文档_远程桌面录制器_Xvfb_noVNC.md`
(状态:已完成)
-
`Docs/PRD/问题处理/录制器/_执行计划_远程桌面录制器_Xvfb_noVNC.md`
(状态:已完成)
-
`Docs/PRD/问题处理/录制器/_执行计划_远程桌面录制器_Xvfb_noVNC.md`
(状态:已完成)
-
`Docs/PRD/问题处理/录制器/_问题处理_5.60录制器有头模式无浏览器弹出且自动登录失败.md`
+
`_执行计划_修复5.60录制器有头模式无浏览器弹出且自动登录失败.md`
(前置问题排查归档)
### 📦 提交记录
-
**`978d4352`**
feat(recorder): 远程桌面录制器 Xvfb+noVNC 实现 + 部署 5.60 实机验收 — 11 文件 +1283/-43(deploy 2 + backend 3 + frontend 1 + HANDOFF 1 + PRD 归档 4)
-
精确暂存提交:工作区中与本次无关的改动(
`playwright_executor.py`
、
`backend/data/test_platform.db`
、一批
`probe_*`
诊断脚本、5.44 定时任务文档)未纳入,保持原样待各线自行甄别
-
**未推送**
:按 CLAUDE.md 约定待用户明确要求后再 push
### ⚠️ 遗留 / 注意事项
### ⚠️ 遗留 / 注意事项
-
**互斥**
:单 Xvfb display
`:99`
同一时刻仅一个录制会话占用;有头模式录制与 Playwright 执行互斥(复用现有约束)。
-
**互斥**
:单 Xvfb display
`:99`
同一时刻仅一个录制会话占用;有头模式录制与 Playwright 执行互斥(复用现有约束)。
...
@@ -453,4 +459,4 @@
...
@@ -453,4 +459,4 @@
---
---
*本文档由 Claude Code 于 2026-09-08 更新(会话
57:双窗口工作合并——本窗口钉钉通知版面重构(三形态统一标题「UI自动化定时报告」+ 分区卡片式 blocks/`\n\n` 连接 + 移除失败明细仅一句统计提示,踩坑沉淀「钉钉 markdown 单 `\n` 折叠为空格须 `\n\n` 分行」,钉钉单测 29/29 + 后端全量 452/452 通过,已部署 5.60 MD5 `c954e976`)与另一窗口执行进度 total_cases 显示修复(会话 54 编号撞号,`b227d759` 437 测试全绿已部署 5.60)经 git rebase 合并提交推送;报告中心放开失败/取消历史执行(reports.py + Reports.vue,三台 total 59/59/994 全通)随本窗口一并归档。历史
:会话 53 5.44 登录/落库双 P0 闭环(`f363abdd` 归档);会话 52 真录制器 Phase 5(`b80abae3`);会话 51 截图瘦身部署 5.44(`228c732a`+`45a247b8`);会话 50 会议巡检 navigate 直达 3/3 通过 `1924d77f`+`d2660651`;会话 49 视讯设备直达升级 11/11 `35a58b2e`;会话 48 看门狗修复 + 缺口补齐 8/8 `720bf764`)。*
*本文档由 Claude Code 于 2026-09-08 更新(会话
60:远程桌面录制器 Xvfb+noVNC 全量落地,提交 `978d4352` 11 文件未推送;历史:会话 57 双窗口工作合并——本窗口钉钉通知版面重构(三形态统一标题「UI自动化定时报告」+ 分区卡片式 blocks/`\n\n` 连接 + 移除失败明细仅一句统计提示,踩坑沉淀「钉钉 markdown 单 `\n` 折叠为空格须 `\n\n` 分行」,钉钉单测 29/29 + 后端全量 452/452 通过,已部署 5.60 MD5 `c954e976`)与另一窗口执行进度 total_cases 显示修复(会话 54 编号撞号,`b227d759` 437 测试全绿已部署 5.60)经 git rebase 合并提交推送;报告中心放开失败/取消历史执行(reports.py + Reports.vue,三台 total 59/59/994 全通)随本窗口一并归档。更早
:会话 53 5.44 登录/落库双 P0 闭环(`f363abdd` 归档);会话 52 真录制器 Phase 5(`b80abae3`);会话 51 截图瘦身部署 5.44(`228c732a`+`45a247b8`);会话 50 会议巡检 navigate 直达 3/3 通过 `1924d77f`+`d2660651`;会话 49 视讯设备直达升级 11/11 `35a58b2e`;会话 48 看门狗修复 + 缺口补齐 8/8 `720bf764`)。*
backend/app/executors/playwright_executor.py
浏览文件 @
2755dfce
...
@@ -1929,7 +1929,7 @@ class PlaywrightExecutor:
...
@@ -1929,7 +1929,7 @@ class PlaywrightExecutor:
if
self
.
_cancel_requested
:
if
self
.
_cancel_requested
:
logger
.
info
(
logger
.
info
(
f
"步骤 {step_result.order} 检测到取消请求,中断执行 "
f
"步骤 {step_result.order} 检测到取消请求,中断执行 "
f
"(case={self._ctx.
case_name
if self._ctx else ''})"
f
"(case={self._ctx.
get('caseName', '')
if self._ctx else ''})"
)
)
break
break
...
...
backend/data/test_platform.db
浏览文件 @
2755dfce
No preview for this file type
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论