You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Robot Framework获取进程ID?解决Start Process与POST Request参数冲突报错问题

问题分析与修正方案

你这里的核心问题是把Process库和RequestsLibrary的关键字完全搞混了!Start Process是Process库用来启动本地系统进程(比如打开一个.exe程序)的工具,根本不是用来发送HTTP POST请求的——所以你把data、headers这些HTTP请求参数传给它,自然会抛出'data' is not supported by this keyword的错误。

结合你的代码逻辑,你实际是想调用API接口/api/processing/executeNow来触发任务,然后获取该任务的进程ID。这时候应该用RequestsLibrary的HTTP请求关键字来实现,以下是修正后的代码:

Get pid
    [Arguments]    ${session}    ${token}    ${domain}    ${task_name}    ${params}=${EMPTY}
    &{headers} =    Create Dictionary    Content-Type=application/x-www-form-urlencoded    domain=${domain}    Accept=application/json    Authorization=${token}
    ${current_date} =    Get Current Date    result_format=%Y%m%d
    &{data} =    Create Dictionary    id=${task_name}    hold=false    processingTimestamp=${current_date}    parameters=${params}
    # 用RequestsLibrary的Post Request发送HTTP请求,替代错误的Start Process
    ${response} =    Post Request    ${session}    /api/processing/executeNow    data=${data}    headers=${headers}
    # 从接口返回的JSON响应中提取进程ID(请根据实际返回字段调整键名)
    ${pid} =    Get From Dictionary    ${response.json()}    pid
    [Return]    ${pid}

额外说明:

  1. 确认接口返回字段:要保证你调用的/api/processing/executeNow接口返回的JSON数据里,确实包含进程ID的字段(比如pid、processId等),如果字段名和示例里的pid不一样,记得修改Get From Dictionary里的键名。
  2. 会话准备:确保你的${session}是之前通过Create Session创建好的有效会话,比如在测试套件里的设置如下:
*** Settings ***
Library    RequestsLibrary

*** Test Cases ***
Demo Get PID
    ${session} =    Create Session    TaskSession    https://your-api-base-domain.com
    ${task_pid} =    Get pid    ${session}    ${your_auth_token}    ${your_domain}    ${target_task_name}
    Log    Successfully got task PID: ${task_pid}

如果你的需求其实是启动本地系统进程并获取PID(而非调用API),那Process库的正确用法应该是这样:

*** Settings ***
Library    Process

*** Keywords ***
Get Local Process PID
    [Arguments]    ${command_to_run}
    ${process_handle} =    Start Process    ${command_to_run}
    ${pid} =    Get Process Id    ${process_handle}
    [Return]    ${pid}

内容的提问来源于stack exchange,提问作者szaman219

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 22:04:05