154 lines
13 KiB
Markdown
154 lines
13 KiB
Markdown
# 应用与系统组件测试报告
|
||
|
||
记录时间:2026年10月30日 16:52:04(北京时间)。覆盖 50 项可执行组件,13 组任务。
|
||
|
||
按组件统计:通过 29,失败 4,阻塞 11,待人工确认 5,未运行 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 | 关闭远程连接 | 待人工确认 |
|
||
|
||
## 用例证据
|
||
|
||
| 用例 | 组件 | 状态 | 预期 | 实际/原因 |
|
||
|---|---|---|---|---|
|
||
| 01-01 | App_Run | 通过 | 第一个测试进程 PID 大于 0 | 37796 |
|
||
| 01-02 | App_Run | 通过 | 第二个 PID 大于 0,且与第一个不同 | 48484 |
|
||
| 01-03 | App_GetPid | 通过 | 返回本次创建的任一 PID | 37796 |
|
||
| 01-04 | App_GetPids | 通过 | 列表恰含本次创建的两个 PID | [37796,48484] |
|
||
| 01-05 | App_Kill | 通过 | 结束第一个夹具 PID,第二个仍在运行 | [37796,false,true] |
|
||
| 01-06 | App_KillV1 | 通过 | 结束第二个夹具 PID | [48484,false] |
|
||
| 01-07 | App_GetPids | 失败 | 所有夹具结束后应返回空数组 [] | [0] |
|
||
| 01-08 | App_GetPid | 失败 | 无匹配时应返回 null | 0 |
|
||
| 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";目录没有目标类型选项映射,不能猜测编号;当前实现也未读取 into_type。 |
|
||
| 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 | 失败 | 返回布尔判定结果(true 或 false),不是类型名称 | "number" |
|
||
| 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_mvuqh8oe_gmpo"} |
|
||
| 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 | 161 |
|
||
| 05-02 | Basic_Delay_V2 | 通过 | 实际等待耗时 80~1800 ms | 186 |
|
||
| 05-03 | Basic_Delay_V1 | 通过 | 实际等待耗时 120~1800 ms | 156 |
|
||
| 05-04 | Basic_Delay | 失败 | 实际等待耗时 2800~6500 ms | 1013 |
|
||
| 05-05 | Basic_RandomInt | 通过 | 最小值等于最大值时返回整数 7 | 7 |
|
||
| 05-06 | Basic_RandomInt | 通过 | 返回 -2~2 的整数 | -2 |
|
||
| 05-07 | Basic_Rnd | 通过 | 随机小数满足 0 ≤ x < 1 | 0.6374054093586852 |
|
||
| 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 | 运行前参数校验拦截,未绕过校验;详见校验问题 |
|
||
| 07-02 | System_ExecuteCommandV1 | 阻塞 | RPA-DOS-OK | 运行前参数校验拦截,未绕过校验;详见校验问题 |
|
||
| 07-03 | System_ExecuteCommandV1 | 阻塞 | RPA-PS-V1-OK | 运行前参数校验拦截,未绕过校验;详见校验问题 |
|
||
| 07-04 | System_ExecuteCommandV1 | 阻塞 | RPA-BAT-OK | 运行前参数校验拦截,未绕过校验;详见校验问题 |
|
||
| 07-05 | System_ExecuteCommand | 阻塞 | 非零退出码应抛出异常 | 运行前参数校验拦截,未绕过校验;详见校验问题 |
|
||
| 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 | 阻塞 | 未启用密码保护时无需密码也应能运行 | 运行前参数校验拦截,未绕过校验;详见校验问题 |
|
||
| 11-04 | System_ScreenSaverStop | 阻塞 | 第二种屏保实际关闭 | 运行前参数校验拦截,未绕过校验;详见校验问题 |
|
||
| 12-01 | ScreenControl_Screenlock | 阻塞 | 实际锁屏;需要人在机器旁用 Windows 登录凭据恢复,不改变账户密码 | 运行前参数校验拦截,未绕过校验;详见校验问题 |
|
||
| 12-02 | ScreenControl_ScreenUnlock | 阻塞 | 核对 Windows 登录解锁;当前实现仅尝试唤醒屏幕,不能标记自动解锁通过 | 运行前参数校验拦截,未绕过校验;详见校验问题 |
|
||
| 13-01 | System_ConnectRemoteDesktop | 待人工确认 | 人工完成登录,并确认已连接到正确测试机器;启动 mstsc 不等于连接成功 | 手动任务不纳入自动执行 |
|
||
| 13-02 | System_CloseRemoteDesktop | 待人工确认 | 确认目标会话及恢复方式后才能执行;当前实现会调用 tsdiscon | 手动任务不纳入自动执行 |
|
||
|
||
## 运行前校验阻塞
|
||
|
||
- test_appsystem_07:「System_ExecuteCommandV1」缺少必填参数:BAT文件;「System_ExecuteCommandV1」缺少必填参数:PowerShell命令;「System_ExecuteCommandV1」缺少必填参数:DOS命令;「System_ExecuteCommandV1」缺少必填参数:BAT文件;「System_ExecuteCommandV1」缺少必填参数:DOS命令;「System_ExecuteCommandV1」缺少必填参数:PowerShell命令
|
||
- test_appsystem_08:「System_AddCredential」缺少必填参数:用户名
|
||
- test_appsystem_11:「System_ScreenSaverShowV1」缺少必填参数:password
|
||
- test_appsystem_12:「ScreenControl_Screenlock」缺少必填参数:用户名;「ScreenControl_Screenlock」缺少必填参数:密码;「ScreenControl_Screenlock」缺少必填参数:分辨率(宽);「ScreenControl_Screenlock」缺少必填参数:分辨率(高);「ScreenControl_ScreenUnlock」缺少必填参数:用户名;「ScreenControl_ScreenUnlock」缺少必填参数:密码
|
||
|
||
## 证据位置
|
||
|
||
隔离用户目录:D:\work\code\RPA-only-demo\test-output\app-system\isolated-I8utNv
|
||
|
||
- test_appsystem_01:D:\work\code\RPA-only-demo\test-output\app-system\isolated-I8utNv\runs\run_mvuqh1m8_mpns\run.json
|
||
- test_appsystem_02:D:\work\code\RPA-only-demo\test-output\app-system\isolated-I8utNv\runs\run_mvuqh8fe_enbw\run.json
|
||
- test_appsystem_03:D:\work\code\RPA-only-demo\test-output\app-system\isolated-I8utNv\runs\run_mvuqh8lw_3nsu\run.json
|
||
- test_appsystem_04:D:\work\code\RPA-only-demo\test-output\app-system\isolated-I8utNv\runs\run_mvuqh8oe_gmpo\run.json
|
||
- test_appsystem_05:D:\work\code\RPA-only-demo\test-output\app-system\isolated-I8utNv\runs\run_mvuqh8sp_54xy\run.json
|
||
- test_appsystem_06:D:\work\code\RPA-only-demo\test-output\app-system\isolated-I8utNv\runs\run_mvuqha0h_4bfu\run.json
|