{ "schemaVersion": 1, "generatedAt": "2026-10-30T00:00:00.000Z", "groups": [ { "id": "test_appsystem_01", "file": "test_appsystem_01.json", "name": "组件测试 01 · 应用与 PID", "manual": false, "components": [ "App_Run", "App_GetPid", "App_GetPids", "App_Kill", "App_KillV1" ], "cases": [ { "id": "01-01", "componentId": "App_Run", "targetNodeId": "t01_8", "resultVariable": "case_1", "input": "{\"executeable\":\"${fixture.exe}\"}", "expected": "第一个测试进程 PID 大于 0", "observe": false }, { "id": "01-02", "componentId": "App_Run", "targetNodeId": "t01_17", "resultVariable": "case_2", "input": "{\"executeable\":\"${fixture.exe}\"}", "expected": "第二个 PID 大于 0,且与第一个不同", "observe": false }, { "id": "01-03", "componentId": "App_GetPid", "targetNodeId": "t01_26", "resultVariable": "case_3", "input": "{\"pattern\":\"${fixture.name}.exe\"}", "expected": "返回本次创建的任一 PID", "observe": false }, { "id": "01-04", "componentId": "App_GetPids", "targetNodeId": "t01_35", "resultVariable": "case_4", "input": "{\"pattern\":\"${fixture.name}.exe\"}", "expected": "列表恰含本次创建的两个 PID", "observe": false }, { "id": "01-05", "componentId": "App_Kill", "targetNodeId": "t01_44", "resultVariable": "case_5", "input": "{\"pid\":\"${pid1}\"}", "expected": "结束第一个夹具 PID,第二个仍在运行", "observe": false }, { "id": "01-06", "componentId": "App_KillV1", "targetNodeId": "t01_55", "resultVariable": "case_6", "input": "{\"close_type\":\"id\",\"pid\":\"${pid2}\",\"kill_all\":\"0\"}", "expected": "只填写 PID 即可结束第二个夹具进程", "observe": false }, { "id": "01-07", "componentId": "App_GetPids", "targetNodeId": "t01_65", "resultVariable": "case_7", "input": "{\"pattern\":\"${fixture.name}.exe\"}", "expected": "所有夹具结束后应返回空数组 []", "observe": false }, { "id": "01-08", "componentId": "App_GetPid", "targetNodeId": "t01_74", "resultVariable": "case_8", "input": "{\"pattern\":\"${fixture.name}.exe\"}", "expected": "无匹配时应返回 null", "observe": false } ] }, { "id": "test_appsystem_02", "file": "test_appsystem_02.json", "name": "组件测试 02 · 数据转换", "manual": false, "components": [ "Basic_StringToNum", "Basic_ConvertNumber", "Basic_ConvertInt", "Basic_ConvertBool", "Basic_ConvertString", "Basic_DataTypeConversion", "Basic_Dodecryption" ], "cases": [ { "id": "02-01", "componentId": "Basic_StringToNum", "targetNodeId": "t02_6", "resultVariable": "case_1", "input": "{\"val\":\"123.5\"}", "expected": "数字 123.5", "observe": false }, { "id": "02-02", "componentId": "Basic_ConvertNumber", "targetNodeId": "t02_15", "resultVariable": "case_2", "input": "{\"val\":\"-42.25\"}", "expected": "数字 -42.25", "observe": false }, { "id": "02-03", "componentId": "Basic_ConvertInt", "targetNodeId": "t02_24", "resultVariable": "case_3", "input": "{\"val\":-3.9}", "expected": "整数 -3(向零截断)", "observe": false }, { "id": "02-04", "componentId": "Basic_ConvertBool", "targetNodeId": "t02_33", "resultVariable": "case_4", "input": "{\"val\":\"true\"}", "expected": "布尔 true", "observe": false }, { "id": "02-05", "componentId": "Basic_ConvertBool", "targetNodeId": "t02_42", "resultVariable": "case_5", "input": "{\"val\":\"false\"}", "expected": "布尔 false", "observe": false }, { "id": "02-06", "componentId": "Basic_ConvertString", "targetNodeId": "t02_51", "resultVariable": "case_6", "input": "{\"val\":42}", "expected": "文本 \"42\"", "observe": false }, { "id": "02-07", "componentId": "Basic_DataTypeConversion", "targetNodeId": "t02_60", "resultVariable": "case_7", "input": "{\"val\":\"42\",\"into_type\":\"number\"}", "expected": "数值 42,严格区分文本和数值", "observe": false }, { "id": "02-08", "componentId": "Basic_DataTypeConversion", "targetNodeId": "t02_69", "resultVariable": "case_8", "input": "{\"val\":\"-3.9\",\"into_type\":\"int\"}", "expected": "整数 -3", "observe": false }, { "id": "02-09", "componentId": "Basic_DataTypeConversion", "targetNodeId": "t02_78", "resultVariable": "case_9", "input": "{\"val\":\"false\",\"into_type\":\"bool\"}", "expected": "布尔 false", "observe": false }, { "id": "02-10", "componentId": "Basic_DataTypeConversion", "targetNodeId": "t02_87", "resultVariable": "case_10", "input": "{\"val\":42,\"into_type\":\"string\"}", "expected": "文本 \"42\"", "observe": false }, { "id": "02-11", "componentId": "Basic_Dodecryption", "targetNodeId": "t02_96", "resultVariable": "case_11", "input": "{\"words\":\"UlBBLURvZGVjcnlwdGlvbg==\"}", "expected": "Base64 解码 \"RPA-Dodecryption\"", "observe": false } ] }, { "id": "test_appsystem_03", "file": "test_appsystem_03.json", "name": "组件测试 03 · 数据判断", "manual": false, "components": [ "Basic_IsDictionary", "Basic_IsNumber", "Basic_IsNull", "Basic_IsArray", "Basic_Type", "Basic_JudgeDataType" ], "cases": [ { "id": "03-01", "componentId": "Basic_IsDictionary", "targetNodeId": "t03_6", "resultVariable": "case_1", "input": "{\"val\":{\"name\":\"测试\"}}", "expected": "true", "observe": false }, { "id": "03-02", "componentId": "Basic_IsDictionary", "targetNodeId": "t03_15", "resultVariable": "case_2", "input": "{\"val\":[]}", "expected": "false", "observe": false }, { "id": "03-03", "componentId": "Basic_IsNumber", "targetNodeId": "t03_24", "resultVariable": "case_3", "input": "{\"val\":\"12.5\"}", "expected": "true", "observe": false }, { "id": "03-04", "componentId": "Basic_IsNumber", "targetNodeId": "t03_33", "resultVariable": "case_4", "input": "{\"val\":\"中文\"}", "expected": "false", "observe": false }, { "id": "03-05", "componentId": "Basic_IsNull", "targetNodeId": "t03_42", "resultVariable": "case_5", "input": "{\"val\":null}", "expected": "true", "observe": false }, { "id": "03-06", "componentId": "Basic_IsNull", "targetNodeId": "t03_51", "resultVariable": "case_6", "input": "{\"val\":\"\"}", "expected": "true", "observe": false }, { "id": "03-07", "componentId": "Basic_IsNull", "targetNodeId": "t03_60", "resultVariable": "case_7", "input": "{\"val\":0}", "expected": "false", "observe": false }, { "id": "03-08", "componentId": "Basic_IsArray", "targetNodeId": "t03_69", "resultVariable": "case_8", "input": "{\"val\":[]}", "expected": "true", "observe": false }, { "id": "03-09", "componentId": "Basic_IsArray", "targetNodeId": "t03_78", "resultVariable": "case_9", "input": "{\"val\":\"[]\"}", "expected": "false", "observe": false }, { "id": "03-10", "componentId": "Basic_Type", "targetNodeId": "t03_87", "resultVariable": "case_10", "input": "{\"val\":[1,2]}", "expected": "\"list\"", "observe": false }, { "id": "03-11", "componentId": "Basic_Type", "targetNodeId": "t03_96", "resultVariable": "case_11", "input": "{\"val\":null}", "expected": "\"null\"", "observe": false }, { "id": "03-12", "componentId": "Basic_JudgeDataType", "targetNodeId": "t03_105", "resultVariable": "case_12", "input": "{\"val\":42,\"into_type\":\"number\"}", "expected": "数字 42 属于数值类型,返回布尔 true", "observe": false } ] }, { "id": "test_appsystem_04", "file": "test_appsystem_04.json", "name": "组件测试 04 · 变量与配置", "manual": false, "components": [ "Basic_SetVariable", "Basic_SetVariable_V1", "Basic_Clone", "Basic_GetProcessInfo", "Basic_DebugOutput", "CustomConfig_GetConfig", "Basic_BusinessOrderCount" ], "cases": [ { "id": "04-01", "componentId": "Basic_SetVariable", "targetNodeId": "t04_6", "resultVariable": "case_1", "input": "{\"value\":\"中文变量往返\"}", "expected": "原值及输出变量均保持中文文本", "observe": false }, { "id": "04-02", "componentId": "Basic_SetVariable_V1", "targetNodeId": "t04_15", "resultVariable": "case_2", "input": "{\"variableType\":\"rpa_int\",\"value\":\"42\"}", "expected": "数字 42", "observe": false }, { "id": "04-03", "componentId": "Basic_SetVariable_V1", "targetNodeId": "t04_24", "resultVariable": "case_3", "input": "{\"variableType\":\"rpa_list\",\"value\":\"[1,2]\"}", "expected": "数组 [1,2]", "observe": false }, { "id": "04-04", "componentId": "Basic_Clone", "targetNodeId": "t04_34", "resultVariable": "case_4", "input": "{\"val\":\"${original}\"}", "expected": "深复制内容相同,外层和嵌套对象均不共用引用", "observe": false }, { "id": "04-05", "componentId": "Basic_GetProcessInfo", "targetNodeId": "t04_43", "resultVariable": "case_5", "input": "{}", "expected": "当前流程 ID、名称、运行 ID 和节点数一致", "observe": false }, { "id": "04-06", "componentId": "Basic_DebugOutput", "targetNodeId": "t04_52", "resultVariable": "case_6", "input": "{\"msg\":\"中文日志测试:${actual_2}\"}", "expected": "日志及返回值为“中文日志测试:42”", "observe": false }, { "id": "04-07", "componentId": "CustomConfig_GetConfig", "targetNodeId": "t04_61", "resultVariable": "case_7", "input": "{\"jsonlist\":\"[{\\\"name\\\":\\\"timeout\\\",\\\"value\\\":30}]\",\"configName\":\"timeout\"}", "expected": "数字 30", "observe": false }, { "id": "04-08", "componentId": "CustomConfig_GetConfig", "targetNodeId": "t04_70", "resultVariable": "case_8", "input": "{\"jsonlist\":\"[]\",\"configName\":\"missing\"}", "expected": "未命中返回 null", "observe": false }, { "id": "04-09", "componentId": "Basic_BusinessOrderCount", "targetNodeId": "t04_79", "resultVariable": "case_9", "input": "{\"start_count\":10,\"count\":2}", "expected": "首次计数 12", "observe": false }, { "id": "04-10", "componentId": "Basic_BusinessOrderCount", "targetNodeId": "t04_88", "resultVariable": "case_10", "input": "{\"start_count\":10,\"count\":2}", "expected": "同一流程再次计数 14", "observe": false } ] }, { "id": "test_appsystem_05", "file": "test_appsystem_05.json", "name": "组件测试 05 · 等待与随机数", "manual": false, "components": [ "Basic_Delay_V2", "Basic_Delay_V1", "Basic_Delay", "Basic_RandomInt", "Basic_Rnd" ], "cases": [ { "id": "05-01", "componentId": "Basic_Delay_V2", "targetNodeId": "t05_7", "resultVariable": "case_1", "input": "{\"is_random\":\"0\",\"second\":\"0.15\",\"min_second\":\"0.1\",\"max_second\":\"0.2\"}", "expected": "实际等待耗时 120~1800 ms", "observe": false }, { "id": "05-02", "componentId": "Basic_Delay_V2", "targetNodeId": "t05_18", "resultVariable": "case_2", "input": "{\"is_random\":\"1\",\"second\":\"0.15\",\"min_second\":\"0.1\",\"max_second\":\"0.2\"}", "expected": "实际等待耗时 80~1800 ms", "observe": false }, { "id": "05-03", "componentId": "Basic_Delay_V1", "targetNodeId": "t05_29", "resultVariable": "case_3", "input": "{\"second\":\"0.15\"}", "expected": "实际等待耗时 120~1800 ms", "observe": false }, { "id": "05-04", "componentId": "Basic_Delay", "targetNodeId": "t05_40", "resultVariable": "case_4", "input": "{\"mileSecond\":\"3000\"}", "expected": "实际等待耗时 2800~6500 ms", "observe": false }, { "id": "05-05", "componentId": "Basic_RandomInt", "targetNodeId": "t05_50", "resultVariable": "case_5", "input": "{\"min\":7,\"max\":7}", "expected": "最小值等于最大值时返回整数 7", "observe": false }, { "id": "05-06", "componentId": "Basic_RandomInt", "targetNodeId": "t05_59", "resultVariable": "case_6", "input": "{\"min\":-2,\"max\":2}", "expected": "返回 -2~2 的整数", "observe": false }, { "id": "05-07", "componentId": "Basic_Rnd", "targetNodeId": "t05_68", "resultVariable": "case_7", "input": "{}", "expected": "随机小数满足 0 ≤ x < 1", "observe": false } ] }, { "id": "test_appsystem_06", "file": "test_appsystem_06.json", "name": "组件测试 06 · 系统路径与环境变量", "manual": false, "components": [ "System_GetTempPath", "System_GetHomePath", "System_GetSystemPath", "System_GetEnv", "System_SetEnv" ], "cases": [ { "id": "06-01", "componentId": "System_GetTempPath", "targetNodeId": "t06_8", "resultVariable": "case_1", "input": "{}", "expected": "与系统临时目录一致(忽略尾部分隔符)", "observe": false }, { "id": "06-02", "componentId": "System_GetHomePath", "targetNodeId": "t06_17", "resultVariable": "case_2", "input": "{}", "expected": "与 Windows 用户文件夹一致", "observe": false }, { "id": "06-03", "componentId": "System_GetSystemPath", "targetNodeId": "t06_26", "resultVariable": "case_3", "input": "{\"path_name\":\"desktop\"}", "expected": "与 Windows 实际桌面目录一致(包含重定向)", "observe": false }, { "id": "06-04", "componentId": "System_GetEnv", "targetNodeId": "t06_35", "resultVariable": "case_4", "input": "{\"name\":\"RPA_APP_SYSTEM_TEST_VALUE\"}", "expected": "读取测试专用变量的原始值,作为恢复依据", "observe": false }, { "id": "06-05", "componentId": "System_SetEnv", "targetNodeId": "t06_44", "resultVariable": "case_5", "input": "{\"name\":\"RPA_APP_SYSTEM_TEST_VALUE\",\"value\":\"中文-测试-42\"}", "expected": "当前应用进程内设置成功", "observe": false }, { "id": "06-06", "componentId": "System_GetEnv", "targetNodeId": "t06_53", "resultVariable": "case_6", "input": "{\"name\":\"RPA_APP_SYSTEM_TEST_VALUE\"}", "expected": "能读回中文-测试-42", "observe": false }, { "id": "06-07", "componentId": "System_SetEnv", "targetNodeId": "t06_62", "resultVariable": "case_7", "input": "{\"name\":\"RPA_APP_SYSTEM_TEST_VALUE\",\"value\":\"${originalEnv}\"}", "expected": "恢复测试前读取值", "observe": false } ] }, { "id": "test_appsystem_07", "file": "test_appsystem_07.json", "name": "组件测试 07 · 命令行", "manual": false, "components": [ "System_ExecuteCommand", "System_ExecuteCommandV1" ], "cases": [ { "id": "07-01", "componentId": "System_ExecuteCommand", "targetNodeId": "t07_6", "resultVariable": "case_1", "input": "{\"action\":\"Write-Output 'RPA-PS-中文-OK'\"}", "expected": "RPA-PS-中文-OK", "observe": false }, { "id": "07-02", "componentId": "System_ExecuteCommandV1", "targetNodeId": "t07_15", "resultVariable": "case_2", "input": "{\"command_type\":\"1\",\"dos_command\":\"echo RPA-DOS-OK\",\"get_ret\":\"1\"}", "expected": "RPA-DOS-OK", "observe": false }, { "id": "07-03", "componentId": "System_ExecuteCommandV1", "targetNodeId": "t07_24", "resultVariable": "case_3", "input": "{\"command_type\":\"3\",\"ps_command\":\"Write-Output 'RPA-PS-V1-OK'\",\"get_ret\":\"1\"}", "expected": "RPA-PS-V1-OK", "observe": false }, { "id": "07-04", "componentId": "System_ExecuteCommandV1", "targetNodeId": "t07_34", "resultVariable": "case_4", "input": "{\"command_type\":\"2\",\"bat_file\":\"${batPath}\",\"get_ret\":\"1\"}", "expected": "RPA-BAT-OK", "observe": false }, { "id": "07-05", "componentId": "System_ExecuteCommand", "targetNodeId": "t07_43", "resultVariable": "case_5", "input": "{\"action\":\"Write-Output 'RPA-ERROR-PROBE'; exit 9\"}", "expected": "非零退出码应抛出异常", "observe": false } ] }, { "id": "test_appsystem_08", "file": "test_appsystem_08.json", "name": "组件测试 08 · Windows 凭据【手动】", "manual": true, "components": [ "System_AddCredential", "System_ReadCredential", "System_DeleteCredential" ], "cases": [ { "id": "08-01", "componentId": "System_AddCredential", "targetNodeId": "t08_10", "resultVariable": "case_1", "input": "{\"application\":\"${credentialTarget}\",\"name\":\"\",\"password\":\"\"}", "expected": "安全输入机制准备好后,在专用目标添加测试凭据", "observe": true }, { "id": "08-02", "componentId": "System_ReadCredential", "targetNodeId": "t08_21", "resultVariable": "case_2", "input": "{\"application\":\"${credentialTarget}\"}", "expected": "仅验证测试凭据存在,不读取或打印密码", "observe": true }, { "id": "08-03", "componentId": "System_DeleteCredential", "targetNodeId": "t08_32", "resultVariable": "case_3", "input": "{\"application\":\"${credentialTarget}\"}", "expected": "删除刚创建的测试目标,之后人工确认不存在", "observe": true } ] }, { "id": "test_appsystem_09", "file": "test_appsystem_09.json", "name": "组件测试 09 · 输入法【手动】", "manual": true, "components": [ "System_GetInputMethodState", "System_SetInputMethodState" ], "cases": [ { "id": "09-01", "componentId": "System_GetInputMethodState", "targetNodeId": "t09_9", "resultVariable": "case_1", "input": "{}", "expected": "读取前台窗口的真实输入法状态,人工对照任务栏", "observe": true }, { "id": "09-02", "componentId": "System_SetInputMethodState", "targetNodeId": "t09_20", "resultVariable": "case_2", "input": "{\"mode\":\"en-US\"}", "expected": "前台编辑器应切换到英文模式;仅子进程返回 set:true 不能算通过", "observe": true }, { "id": "09-03", "componentId": "System_SetInputMethodState", "targetNodeId": "t09_31", "resultVariable": "case_3", "input": "{\"mode\":\"${originalIme.culture}\"}", "expected": "恢复原输入法;人工确认前台窗口的实际状态", "observe": true } ] }, { "id": "test_appsystem_10", "file": "test_appsystem_10.json", "name": "组件测试 10 · 音频【手动】", "manual": true, "components": [ "System_PlaySound" ], "cases": [ { "id": "10-01", "componentId": "System_PlaySound", "targetNodeId": "t10_10", "resultVariable": "case_1", "input": "{\"audio\":\"${audioPath}\"}", "expected": "听到一次短提示音;没有声音不能算通过", "observe": true } ] }, { "id": "test_appsystem_11", "file": "test_appsystem_11.json", "name": "组件测试 11 · 屏保【手动】", "manual": true, "components": [ "System_ScreenSaverShow", "System_ScreenSaverShowV1", "System_ScreenSaverStop" ], "cases": [ { "id": "11-01", "componentId": "System_ScreenSaverShow", "targetNodeId": "t11_9", "resultVariable": "case_1", "input": "{\"text\":\"RPA 测试\",\"status\":\"1\"}", "expected": "屏幕实际进入屏保;无配置时记录阻塞", "observe": true }, { "id": "11-02", "componentId": "System_ScreenSaverStop", "targetNodeId": "t11_20", "resultVariable": "case_2", "input": "{}", "expected": "屏保实际关闭,可正常操作", "observe": true }, { "id": "11-03", "componentId": "System_ScreenSaverShowV1", "targetNodeId": "t11_31", "resultVariable": "case_3", "input": "{}", "expected": "开启 Windows 已配置的屏保,不要求输入密码;人工确认屏幕实际变化", "observe": true }, { "id": "11-04", "componentId": "System_ScreenSaverStop", "targetNodeId": "t11_42", "resultVariable": "case_4", "input": "{}", "expected": "第二种屏保实际关闭", "observe": true } ] }, { "id": "test_appsystem_12", "file": "test_appsystem_12.json", "name": "组件测试 12 · 锁屏与解锁【手动】", "manual": true, "components": [ "ScreenControl_Screenlock", "ScreenControl_ScreenUnlock" ], "cases": [ { "id": "12-01", "componentId": "ScreenControl_Screenlock", "targetNodeId": "t12_9", "resultVariable": "case_1", "input": "{\"username\":\"\",\"pwd\":\"\",\"width\":\"\",\"height\":\"\",\"scale_factor\":\"100\"}", "expected": "实际锁屏;需要人在机器旁用 Windows 登录凭据恢复,不改变账户密码", "observe": true }, { "id": "12-02", "componentId": "ScreenControl_ScreenUnlock", "targetNodeId": "t12_20", "resultVariable": "case_2", "input": "{}", "expected": "仅尝试唤醒屏幕,loginUnlockSupported 必须为 false;Windows 登录仍需人工完成", "observe": true } ] }, { "id": "test_appsystem_13", "file": "test_appsystem_13.json", "name": "组件测试 13 · 远程桌面【手动】", "manual": true, "components": [ "System_ConnectRemoteDesktop", "System_CloseRemoteDesktop" ], "cases": [ { "id": "13-01", "componentId": "System_ConnectRemoteDesktop", "targetNodeId": "t13_11", "resultVariable": "case_1", "input": "{\"ip\":\"${remoteAddress}\",\"port\":\"3389\"}", "expected": "人工完成登录,并确认已连接到正确测试机器;启动 mstsc 不等于连接成功", "observe": true }, { "id": "13-02", "componentId": "System_CloseRemoteDesktop", "targetNodeId": "t13_22", "resultVariable": "case_2", "input": "{}", "expected": "确认目标会话及恢复方式后才能执行;当前实现会调用 tsdiscon", "observe": true } ] } ] }