PRA-only-demo/resources/test-flows/app-system/REPORT.md
liuwenxin d489288c8e test(应用与系统): 添加组件验收流程与复测报告
提供 13 组、74 个用例,覆盖 49 项可执行组件。
新增隔离运行、真实界面检查、结果汇总和安全安装脚本。
升级仅覆盖未修改的测试模板,并保留原文件备份。
为手动操作设置保护开关,保留修复前后验证证据。

验证:43 项相关检查、类型检查与构建通过。
2026-11-02 09:06:40 +08:00

13 KiB
Raw Blame History

应用与系统组件测试报告

记录时间:2026年10月30日 18:50:29(北京时间)。覆盖 49 项可执行组件,13 组任务。

按组件统计:通过 36,失败 0,阻塞 5,待人工确认 8,未运行 0。

状态依据是断言、前置校验和人工证据,节点执行成功不直接代表功能通过。未执行手动系统操作。

组 组件 ID 名称 状态
01 App_Run 启动应用程序 通过
01 App_GetPid 获取一个匹配PID 通过
01 App_GetPids 获取全部匹配PID 通过
01 App_Kill 关闭应用程序 通过
01 App_KillV1 关闭应用程序 通过
02 Basic_StringToNum 将文本转换为数字 通过
02 Basic_ConvertNumber 数据转为数值类型 通过
02 Basic_ConvertInt 数值转为整数类型 通过
02 Basic_ConvertBool 数据转为布尔类型 通过
02 Basic_ConvertString 将数字转换为文本 通过
02 Basic_DataTypeConversion 转换数据类型 通过
03 Basic_IsDictionary 判断数据是否为字典 通过
03 Basic_IsNumber 判断数据是否为数值 通过
03 Basic_IsNull 判断数据是否为空 通过
03 Basic_IsArray 判断数据是否为数组 通过
03 Basic_Type 获取数据类型 通过
03 Basic_JudgeDataType 判断数据类型 通过
04 Basic_SetVariable 设置变量 通过
04 Basic_SetVariable_V1 设置变量 通过
04 Basic_Clone 复制数据 通过
04 Basic_GetProcessInfo 获取流程信息 通过
04 Basic_DebugOutput 调试输出 通过
04 CustomConfig_GetConfig 自定义配置 通过
04 Basic_BusinessOrderCount 业务办理计数 通过
05 Basic_Delay_V2 等待 通过
05 Basic_Delay_V1 等待 通过
05 Basic_Delay 流程延迟执行 通过
05 Basic_RandomInt 生成随机数 通过
05 Basic_Rnd 生成随机数 通过
06 System_GetTempPath 获取临时文件夹路径 通过
06 System_GetHomePath 获取用户文件夹路径 通过
06 System_GetSystemPath 获取系统文件夹路径 通过
06 System_GetEnv 获取环境变量 通过
06 System_SetEnv 设置环境变量 通过
07 System_ExecuteCommand 执行命令行 通过
07 System_ExecuteCommandV1 执行命令行 通过
08 System_AddCredential 添加Windows凭据 阻塞
08 System_ReadCredential 获取Windows凭据 阻塞
08 System_DeleteCredential 删除Windows凭据 阻塞
09 System_GetInputMethodState 获取输入法状态 待人工确认
09 System_SetInputMethodState 设置输入法状态 待人工确认
10 System_PlaySound 播放音频 待人工确认
11 System_ScreenSaverShow 开启屏保 待人工确认
11 System_ScreenSaverShowV1 开启屏保 待人工确认
11 System_ScreenSaverStop 关闭屏保 待人工确认
12 ScreenControl_Screenlock 屏幕锁屏 阻塞
12 ScreenControl_ScreenUnlock 唤醒屏幕(非登录解锁) 阻塞
13 System_ConnectRemoteDesktop 连接远程桌面 待人工确认
13 System_CloseRemoteDesktop 关闭远程连接 待人工确认

真实界面验证

已通过独立 Electron 窗口检查:类型下拉选项、PID/名称参数切换、DOS/PowerShell 参数切换,以及唤醒组件不再索要账号密码。界面快照及 ui-check.json 保存在 test-output/app-system/。

用例证据

用例 组件 状态 预期 实际/原因
01-01 App_Run 通过 第一个测试进程 PID 大于 0 53688
01-02 App_Run 通过 第二个 PID 大于 0,且与第一个不同 47408
01-03 App_GetPid 通过 返回本次创建的任一 PID 47408
01-04 App_GetPids 通过 列表恰含本次创建的两个 PID [47408,53688]
01-05 App_Kill 通过 结束第一个夹具 PID,第二个仍在运行 [53688,false,true]
01-06 App_KillV1 通过 只填写 PID 即可结束第二个夹具进程 [47408,false]
01-07 App_GetPids 通过 所有夹具结束后应返回空数组 [] []
01-08 App_GetPid 通过 无匹配时应返回 null null
02-01 Basic_StringToNum 通过 数字 123.5 123.5
02-02 Basic_ConvertNumber 通过 数字 -42.25 -42.25
02-03 Basic_ConvertInt 通过 整数 -3(向零截断) -3
02-04 Basic_ConvertBool 通过 布尔 true true
02-05 Basic_ConvertBool 通过 布尔 false false
02-06 Basic_ConvertString 通过 文本 "42" "42"
02-07 Basic_DataTypeConversion 通过 数值 42,严格区分文本和数值 42
02-08 Basic_DataTypeConversion 通过 整数 -3 -3
02-09 Basic_DataTypeConversion 通过 布尔 false false
02-10 Basic_DataTypeConversion 通过 文本 "42" "42"
03-01 Basic_IsDictionary 通过 true true
03-02 Basic_IsDictionary 通过 false false
03-03 Basic_IsNumber 通过 true true
03-04 Basic_IsNumber 通过 false false
03-05 Basic_IsNull 通过 true true
03-06 Basic_IsNull 通过 true true
03-07 Basic_IsNull 通过 false false
03-08 Basic_IsArray 通过 true true
03-09 Basic_IsArray 通过 false false
03-10 Basic_Type 通过 "list" "list"
03-11 Basic_Type 通过 "null" "null"
03-12 Basic_JudgeDataType 通过 数字 42 属于数值类型,返回布尔 true true
04-01 Basic_SetVariable 通过 原值及输出变量均保持中文文本 "中文变量往返"
04-02 Basic_SetVariable_V1 通过 数字 42 42
04-03 Basic_SetVariable_V1 通过 数组 [1,2] [1,2]
04-04 Basic_Clone 通过 深复制内容相同,外层和嵌套对象均不共用引用 {"title":"中文","nested":{"n":1}}
04-05 Basic_GetProcessInfo 通过 当前流程 ID、名称、运行 ID 和节点数一致 {"id":"test_appsystem_04","name":"组件测试 04 · 变量与配置","description":"查看运行日志中的用例结果;有失败时任务最终显示失败,其他用例仍继续。","enabled":true,"trigger":{"type":"manual","label":"手动运行"},"version":"0.1.0","createdAt":"2026-10-30T00:00:00.000Z","updatedAt":"2026-10-30T00:00:00.000Z","nodeCount":99,"runId":"run_mvuupg9x_yifj"}
04-06 Basic_DebugOutput 通过 日志及返回值为“中文日志测试:42” "中文日志测试:42"
04-07 CustomConfig_GetConfig 通过 数字 30 30
04-08 CustomConfig_GetConfig 通过 未命中返回 null null
04-09 Basic_BusinessOrderCount 通过 首次计数 12 12
04-10 Basic_BusinessOrderCount 通过 同一流程再次计数 14 14
05-01 Basic_Delay_V2 通过 实际等待耗时 120~1800 ms 165
05-02 Basic_Delay_V2 通过 实际等待耗时 80~1800 ms 122
05-03 Basic_Delay_V1 通过 实际等待耗时 120~1800 ms 154
05-04 Basic_Delay 通过 实际等待耗时 2800~6500 ms 3011
05-05 Basic_RandomInt 通过 最小值等于最大值时返回整数 7 7
05-06 Basic_RandomInt 通过 返回 -2~2 的整数 2
05-07 Basic_Rnd 通过 随机小数满足 0 ≤ x < 1 0.18320588816502648
06-01 System_GetTempPath 通过 与系统临时目录一致(忽略尾部分隔符) "C:\Users\Administrator\AppData\Local\Temp"
06-02 System_GetHomePath 通过 与 Windows 用户文件夹一致 "C:\Users\Administrator"
06-03 System_GetSystemPath 通过 与 Windows 实际桌面目录一致(包含重定向) "C:\Users\Administrator\Desktop"
06-04 System_GetEnv 通过 读取测试专用变量的原始值,作为恢复依据 "隔离环境原始值"
06-05 System_SetEnv 通过 当前应用进程内设置成功 "中文-测试-42"
06-06 System_GetEnv 通过 能读回中文-测试-42 "中文-测试-42"
06-07 System_SetEnv 通过 恢复测试前读取值 "隔离环境原始值"
07-01 System_ExecuteCommand 通过 RPA-PS-中文-OK "RPA-PS-中文-OK"
07-02 System_ExecuteCommandV1 通过 RPA-DOS-OK "RPA-DOS-OK"
07-03 System_ExecuteCommandV1 通过 RPA-PS-V1-OK "RPA-PS-V1-OK"
07-04 System_ExecuteCommandV1 通过 RPA-BAT-OK "RPA-BAT-OK"
07-05 System_ExecuteCommand 通过 非零退出码应抛出异常 "桌面操作失败:Command failed: powershell.exe -NoProfile -NonInteractive -ExecutionPolicy Bypass -EncodedCommand JABQAHIAbwBnAHIAZQBzAHMAUAByAGUAZgBlAHIAZQBuAGMAZQA9ACcAUwBpAGwAZQBuAHQAbAB5AEMAbwBuAHQAaQBuAHUAZQAnADsAIABbAEMAbwBuAHMAbwBsAGUAXQA6ADoATwB1AHQAcAB1AHQARQBuAGMAbwBkAGkAbgBnAD0AWwBTAHkAcwB0AGUAbQAuAFQAZQB4AHQALgBVAFQARgA4AEUAbgBjAG8AZABpAG4AZwBdADoAOgBuAGUAdwAoACQAZgBhAGwAcwBlACkAOwAgACQATwB1AHQAcAB1AHQARQBuAGMAbwBkAGkAbgBnAD0AWwBDAG8AbgBzAG8AbABlAF0AOgA6AE8AdQB0AHAAdQB0AEUAbgBjAG8AZABpAG4AZwA7ACAAVwByAGkAdABlAC0ATwB1AHQAcAB1AHQAIAAnAFIAUABBAC0ARQBSAFIATwBSAC0AUABSAE8AQgBFACcAOwAgAGUAeABpAHQAIAA5AA==\n"
08-01 System_AddCredential 阻塞 安全输入机制准备好后,在专用目标添加测试凭据 运行前参数校验拦截,未绕过校验;详见校验问题
08-02 System_ReadCredential 阻塞 仅验证测试凭据存在,不读取或打印密码 运行前参数校验拦截,未绕过校验;详见校验问题
08-03 System_DeleteCredential 阻塞 删除刚创建的测试目标,之后人工确认不存在 运行前参数校验拦截,未绕过校验;详见校验问题
09-01 System_GetInputMethodState 待人工确认 读取前台窗口的真实输入法状态,人工对照任务栏 手动任务不纳入自动执行
09-02 System_SetInputMethodState 待人工确认 前台编辑器应切换到英文模式;仅子进程返回 set:true 不能算通过 手动任务不纳入自动执行
09-03 System_SetInputMethodState 待人工确认 恢复原输入法;人工确认前台窗口的实际状态 手动任务不纳入自动执行
10-01 System_PlaySound 待人工确认 听到一次短提示音;没有声音不能算通过 手动任务不纳入自动执行
11-01 System_ScreenSaverShow 待人工确认 屏幕实际进入屏保;无配置时记录阻塞 手动任务不纳入自动执行
11-02 System_ScreenSaverStop 待人工确认 屏保实际关闭,可正常操作 手动任务不纳入自动执行
11-03 System_ScreenSaverShowV1 待人工确认 开启 Windows 已配置的屏保,不要求输入密码;人工确认屏幕实际变化 手动任务不纳入自动执行
11-04 System_ScreenSaverStop 待人工确认 第二种屏保实际关闭 手动任务不纳入自动执行
12-01 ScreenControl_Screenlock 阻塞 实际锁屏;需要人在机器旁用 Windows 登录凭据恢复,不改变账户密码 运行前参数校验拦截,未绕过校验;详见校验问题
12-02 ScreenControl_ScreenUnlock 阻塞 仅尝试唤醒屏幕,loginUnlockSupported 必须为 false;Windows 登录仍需人工完成 运行前参数校验拦截,未绕过校验;详见校验问题
13-01 System_ConnectRemoteDesktop 待人工确认 人工完成登录,并确认已连接到正确测试机器;启动 mstsc 不等于连接成功 手动任务不纳入自动执行
13-02 System_CloseRemoteDesktop 待人工确认 确认目标会话及恢复方式后才能执行;当前实现会调用 tsdiscon 手动任务不纳入自动执行

运行前校验阻塞

  • test_appsystem_08:「System_AddCredential」缺少必填参数:用户名
  • test_appsystem_12:「ScreenControl_Screenlock」缺少必填参数:用户名;「ScreenControl_Screenlock」缺少必填参数:密码;「ScreenControl_Screenlock」缺少必填参数:分辨率(宽);「ScreenControl_Screenlock」缺少必填参数:分辨率(高)

证据位置

隔离用户目录:D:\work\code\RPA-only-demo\test-output\app-system\isolated-PN2R7C

  • test_appsystem_01:D:\work\code\RPA-only-demo\test-output\app-system\isolated-PN2R7C\runs\run_mvuuparb_ikwv\run.json
  • test_appsystem_02:D:\work\code\RPA-only-demo\test-output\app-system\isolated-PN2R7C\runs\run_mvuupg4i_9qr9\run.json
  • test_appsystem_03:D:\work\code\RPA-only-demo\test-output\app-system\isolated-PN2R7C\runs\run_mvuupg6q_6ij5\run.json
  • test_appsystem_04:D:\work\code\RPA-only-demo\test-output\app-system\isolated-PN2R7C\runs\run_mvuupg9x_yifj\run.json
  • test_appsystem_05:D:\work\code\RPA-only-demo\test-output\app-system\isolated-PN2R7C\runs\run_mvuupgcn_2wod\run.json
  • test_appsystem_06:D:\work\code\RPA-only-demo\test-output\app-system\isolated-PN2R7C\runs\run_mvuupj2n_b65x\run.json
  • test_appsystem_07:D:\work\code\RPA-only-demo\test-output\app-system\isolated-PN2R7C\runs\run_mvuupjiv_mh0i\run.json