{ "schemaVersion": 1, "id": "test_appsystem_08", "name": "组件测试 08 · Windows 凭据【手动】", "description": "手动测试:先阅读测试说明。默认不开启执行开关,不能把组件返回成功当作功能通过。", "enabled": true, "trigger": { "type": "manual", "label": "手动运行" }, "variables": [], "nodes": [ { "id": "t08_1", "componentId": "Trigger.Manual", "label": "人工发起", "position": { "x": 220, "y": 80 }, "values": { "entryName": "开始组件测试" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false } }, { "id": "t08_2", "componentId": "Basic_SetVariable", "label": "初始化失败计数", "position": { "x": 220, "y": 222 }, "values": { "value": 0 }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "failures" } }, { "id": "t08_3", "componentId": "Basic_SetVariable", "label": "初始化待确认计数", "position": { "x": 220, "y": 364 }, "values": { "value": 0 }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "pending" } }, { "id": "t08_4", "componentId": "Basic_SetVariable", "label": "初始化阻塞计数", "position": { "x": 220, "y": 506 }, "values": { "value": 0 }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "blocked" } }, { "id": "t08_5", "componentId": "Basic_SetVariable", "label": "手动执行开关:确认环境后才可改为 true", "position": { "x": 220, "y": 648 }, "values": { "value": false }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "manualEnabled" } }, { "id": "t08_6", "componentId": "Basic_SetVariable", "label": "只允许使用新的测试凭据目标", "position": { "x": 220, "y": 790 }, "values": { "value": "RPA-AppSystem-Tests-${now()}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "credentialTarget" } }, { "id": "t08_7", "componentId": "logic_control_try_catch", "label": "08-01 · System_AddCredential", "position": { "x": 220, "y": 932 }, "values": {}, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false } }, { "id": "t08_8", "componentId": "logic_control_if_else", "label": "手动执行保护", "position": { "x": 220, "y": 1340 }, "values": { "condition": "${manualEnabled === true}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false }, "parentId": "t08_7", "slot": "try_fn" }, { "id": "t08_9", "componentId": "ExceptionUtil_Throws", "label": "默认不执行系统状态操作", "position": { "x": 220, "y": 1340 }, "values": { "msg": "待人工确认:执行开关未开启" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false }, "parentId": "t08_8", "slot": "statement_else" }, { "id": "t08_10", "componentId": "System_AddCredential", "label": "System_AddCredential", "position": { "x": 220, "y": 1340 }, "values": { "application": "${credentialTarget}", "name": "", "password": "" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "actual_1" }, "parentId": "t08_8", "slot": "statement_if" }, { "id": "t08_11", "componentId": "Basic_SetVariable", "label": "记录实际值与判定", "position": { "x": 220, "y": 1340 }, "values": { "value": "${[\"08-01\", \"System_AddCredential\", \"MANUAL\", \"{\\\"application\\\":\\\"${credentialTarget}\\\",\\\"name\\\":\\\"\\\",\\\"password\\\":\\\"\\\"}\", \"安全输入机制准备好后,在专用目标添加测试凭据\", actual_1]}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "case_1" }, "parentId": "t08_8", "slot": "statement_if" }, { "id": "t08_12", "componentId": "Basic_SetVariable", "label": "累计失败数", "position": { "x": 220, "y": 1340 }, "values": { "value": "${failures + (case_1[2] === \"FAIL\" ? 1 : 0)}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "failures" }, "parentId": "t08_8", "slot": "statement_if" }, { "id": "t08_13", "componentId": "Basic_SetVariable", "label": "累计待人工确认数", "position": { "x": 220, "y": 1340 }, "values": { "value": "${pending + (case_1[2] === \"MANUAL\" ? 1 : 0)}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "pending" }, "parentId": "t08_8", "slot": "statement_if" }, { "id": "t08_14", "componentId": "Basic_SetVariable", "label": "记录异常结果", "position": { "x": 220, "y": 1340 }, "values": { "value": "${[\"08-01\", \"System_AddCredential\", manualEnabled === true ? \"FAIL\" : \"MANUAL\", \"{\\\"application\\\":\\\"${credentialTarget}\\\",\\\"name\\\":\\\"\\\",\\\"password\\\":\\\"\\\"}\", \"安全输入机制准备好后,在专用目标添加测试凭据\", error.reason]}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "case_1" }, "parentId": "t08_7", "slot": "except_fn" }, { "id": "t08_15", "componentId": "Basic_SetVariable", "label": "异常累计失败数", "position": { "x": 220, "y": 1340 }, "values": { "value": "${failures + (case_1[2] === \"FAIL\" ? 1 : 0)}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "failures" }, "parentId": "t08_7", "slot": "except_fn" }, { "id": "t08_16", "componentId": "Basic_SetVariable", "label": "异常累计待确认数", "position": { "x": 220, "y": 1340 }, "values": { "value": "${pending + (case_1[2] === \"MANUAL\" ? 1 : 0)}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "pending" }, "parentId": "t08_7", "slot": "except_fn" }, { "id": "t08_17", "componentId": "Log_Info", "label": "输出测试结果", "position": { "x": 220, "y": 1436 }, "values": { "msg": "用例结果:${json(case_1)}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false } }, { "id": "t08_18", "componentId": "logic_control_try_catch", "label": "08-02 · System_ReadCredential", "position": { "x": 220, "y": 1578 }, "values": {}, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false } }, { "id": "t08_19", "componentId": "logic_control_if_else", "label": "手动执行保护", "position": { "x": 220, "y": 1700 }, "values": { "condition": "${manualEnabled === true}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false }, "parentId": "t08_18", "slot": "try_fn" }, { "id": "t08_20", "componentId": "ExceptionUtil_Throws", "label": "默认不执行系统状态操作", "position": { "x": 220, "y": 1700 }, "values": { "msg": "待人工确认:执行开关未开启" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false }, "parentId": "t08_19", "slot": "statement_else" }, { "id": "t08_21", "componentId": "System_ReadCredential", "label": "System_ReadCredential", "position": { "x": 220, "y": 1700 }, "values": { "application": "${credentialTarget}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "actual_2" }, "parentId": "t08_19", "slot": "statement_if" }, { "id": "t08_22", "componentId": "Basic_SetVariable", "label": "记录实际值与判定", "position": { "x": 220, "y": 1700 }, "values": { "value": "${[\"08-02\", \"System_ReadCredential\", \"MANUAL\", \"{\\\"application\\\":\\\"${credentialTarget}\\\"}\", \"仅验证测试凭据存在,不读取或打印密码\", actual_2]}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "case_2" }, "parentId": "t08_19", "slot": "statement_if" }, { "id": "t08_23", "componentId": "Basic_SetVariable", "label": "累计失败数", "position": { "x": 220, "y": 1700 }, "values": { "value": "${failures + (case_2[2] === \"FAIL\" ? 1 : 0)}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "failures" }, "parentId": "t08_19", "slot": "statement_if" }, { "id": "t08_24", "componentId": "Basic_SetVariable", "label": "累计待人工确认数", "position": { "x": 220, "y": 1700 }, "values": { "value": "${pending + (case_2[2] === \"MANUAL\" ? 1 : 0)}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "pending" }, "parentId": "t08_19", "slot": "statement_if" }, { "id": "t08_25", "componentId": "Basic_SetVariable", "label": "记录异常结果", "position": { "x": 220, "y": 1700 }, "values": { "value": "${[\"08-02\", \"System_ReadCredential\", manualEnabled === true ? \"FAIL\" : \"MANUAL\", \"{\\\"application\\\":\\\"${credentialTarget}\\\"}\", \"仅验证测试凭据存在,不读取或打印密码\", error.reason]}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "case_2" }, "parentId": "t08_18", "slot": "except_fn" }, { "id": "t08_26", "componentId": "Basic_SetVariable", "label": "异常累计失败数", "position": { "x": 220, "y": 1700 }, "values": { "value": "${failures + (case_2[2] === \"FAIL\" ? 1 : 0)}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "failures" }, "parentId": "t08_18", "slot": "except_fn" }, { "id": "t08_27", "componentId": "Basic_SetVariable", "label": "异常累计待确认数", "position": { "x": 220, "y": 1700 }, "values": { "value": "${pending + (case_2[2] === \"MANUAL\" ? 1 : 0)}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "pending" }, "parentId": "t08_18", "slot": "except_fn" }, { "id": "t08_28", "componentId": "Log_Info", "label": "输出测试结果", "position": { "x": 220, "y": 2082 }, "values": { "msg": "用例结果:${json(case_2)}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false } }, { "id": "t08_29", "componentId": "logic_control_try_catch", "label": "08-03 · System_DeleteCredential", "position": { "x": 220, "y": 2224 }, "values": {}, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false } }, { "id": "t08_30", "componentId": "logic_control_if_else", "label": "手动执行保护", "position": { "x": 220, "y": 2060 }, "values": { "condition": "${manualEnabled === true}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false }, "parentId": "t08_29", "slot": "try_fn" }, { "id": "t08_31", "componentId": "ExceptionUtil_Throws", "label": "默认不执行系统状态操作", "position": { "x": 220, "y": 2060 }, "values": { "msg": "待人工确认:执行开关未开启" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false }, "parentId": "t08_30", "slot": "statement_else" }, { "id": "t08_32", "componentId": "System_DeleteCredential", "label": "System_DeleteCredential", "position": { "x": 220, "y": 2060 }, "values": { "application": "${credentialTarget}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "actual_3" }, "parentId": "t08_30", "slot": "statement_if" }, { "id": "t08_33", "componentId": "Basic_SetVariable", "label": "记录实际值与判定", "position": { "x": 220, "y": 2060 }, "values": { "value": "${[\"08-03\", \"System_DeleteCredential\", \"MANUAL\", \"{\\\"application\\\":\\\"${credentialTarget}\\\"}\", \"删除刚创建的测试目标,之后人工确认不存在\", actual_3]}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "case_3" }, "parentId": "t08_30", "slot": "statement_if" }, { "id": "t08_34", "componentId": "Basic_SetVariable", "label": "累计失败数", "position": { "x": 220, "y": 2060 }, "values": { "value": "${failures + (case_3[2] === \"FAIL\" ? 1 : 0)}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "failures" }, "parentId": "t08_30", "slot": "statement_if" }, { "id": "t08_35", "componentId": "Basic_SetVariable", "label": "累计待人工确认数", "position": { "x": 220, "y": 2060 }, "values": { "value": "${pending + (case_3[2] === \"MANUAL\" ? 1 : 0)}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "pending" }, "parentId": "t08_30", "slot": "statement_if" }, { "id": "t08_36", "componentId": "Basic_SetVariable", "label": "记录异常结果", "position": { "x": 220, "y": 2060 }, "values": { "value": "${[\"08-03\", \"System_DeleteCredential\", manualEnabled === true ? \"FAIL\" : \"MANUAL\", \"{\\\"application\\\":\\\"${credentialTarget}\\\"}\", \"删除刚创建的测试目标,之后人工确认不存在\", error.reason]}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "case_3" }, "parentId": "t08_29", "slot": "except_fn" }, { "id": "t08_37", "componentId": "Basic_SetVariable", "label": "异常累计失败数", "position": { "x": 220, "y": 2060 }, "values": { "value": "${failures + (case_3[2] === \"FAIL\" ? 1 : 0)}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "failures" }, "parentId": "t08_29", "slot": "except_fn" }, { "id": "t08_38", "componentId": "Basic_SetVariable", "label": "异常累计待确认数", "position": { "x": 220, "y": 2060 }, "values": { "value": "${pending + (case_3[2] === \"MANUAL\" ? 1 : 0)}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false, "outputVar": "pending" }, "parentId": "t08_29", "slot": "except_fn" }, { "id": "t08_39", "componentId": "Log_Info", "label": "输出测试结果", "position": { "x": 220, "y": 2728 }, "values": { "msg": "用例结果:${json(case_3)}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false } }, { "id": "t08_40", "componentId": "Log_Info", "label": "输出测试结果", "position": { "x": 220, "y": 2870 }, "values": { "msg": "本组汇总:失败 ${failures} 项,阻塞 ${blocked} 项,待人工确认 ${pending} 项。" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false } }, { "id": "t08_41", "componentId": "logic_control_if_else", "label": "汇总判定", "position": { "x": 220, "y": 3012 }, "values": { "condition": "${failures > 0 || pending > 0 || blocked > 0}" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false } }, { "id": "t08_42", "componentId": "ExceptionUtil_Throws", "label": "如实标记未通过", "position": { "x": 220, "y": 2600 }, "values": { "msg": "组件测试未全部通过:失败 ${failures} 项,阻塞 ${blocked} 项,待人工确认 ${pending} 项。请查看日志。" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false }, "parentId": "t08_41", "slot": "statement_if" }, { "id": "t08_43", "componentId": "Log_Info", "label": "输出测试结果", "position": { "x": 220, "y": 2600 }, "values": { "msg": "本组全部通过。" }, "options": { "timeoutMs": 15000, "retryCount": 0, "logException": false }, "parentId": "t08_41", "slot": "statement_else" } ], "edges": [ { "id": "e_t08_2", "source": "t08_1", "target": "t08_2" }, { "id": "e_t08_3", "source": "t08_2", "target": "t08_3" }, { "id": "e_t08_4", "source": "t08_3", "target": "t08_4" }, { "id": "e_t08_5", "source": "t08_4", "target": "t08_5" }, { "id": "e_t08_6", "source": "t08_5", "target": "t08_6" }, { "id": "e_t08_7", "source": "t08_6", "target": "t08_7" }, { "id": "e_t08_17", "source": "t08_7", "target": "t08_17" }, { "id": "e_t08_18", "source": "t08_17", "target": "t08_18" }, { "id": "e_t08_28", "source": "t08_18", "target": "t08_28" }, { "id": "e_t08_29", "source": "t08_28", "target": "t08_29" }, { "id": "e_t08_39", "source": "t08_29", "target": "t08_39" }, { "id": "e_t08_40", "source": "t08_39", "target": "t08_40" }, { "id": "e_t08_41", "source": "t08_40", "target": "t08_41" } ], "meta": { "createdAt": "2026-10-30T00:00:00.000Z", "updatedAt": "2026-10-30T00:00:00.000Z", "appVersion": "0.1.0" } }