Robotframework for-loop机器人框架迭代中变量的增加值

Robotframework for-loop机器人框架迭代中变量的增加值,robotframework,Robotframework,我需要增加For循环中的${success\u num}测试用例变量: 但它始终为0,即使在我向其中添加1之后也是如此。就像每次迭代后都被重置一样。我怎样才能增加它的价值 *** Test Cases *** ... ... Set Test Variable ${success_num} ${0} App For Port ${actual_app} ... ... *** Keywords *** App For Port

我需要增加For循环中的
${success\u num}
测试用例变量: 但它始终为0,即使在我向其中添加1之后也是如此。就像每次迭代后都被重置一样。我怎样才能增加它的价值

*** Test Cases ***
    ...
    ...
    Set Test Variable    ${success_num}    ${0}
    App For Port    ${actual_app}
    ...
    ...

*** Keywords ***
App For Port    [Arguments]    ${app}
    : FOR    ${port_num}    IN    1    2
    \    ${PorF}    ${message}    Run Keyword And Ignore Error    applicationcontrol.Launch application    ${app}    ${port_num}
    \    Continue For Loop If    '${PorF}'=='FALSE'
    \    ${status}    Run Keyword And Return Status    Check launching status    ${app}    ${port_num}
    \    Continue For Loop If    '${status}'=='False'
    \    Run Keyword If    '${status}'=='True'   Add Success
    \    Exit For Loop

Add Success
    ${success_num}    Set Variable    ${success_num+1}

将关键字
添加成功
更改为:

Add Success
    ${temp}    Evaluate    ${success_num} + 1
    Set Test Variable    ${success_num}    ${temp}

您不必调用关键字来增加成功次数:

App For Port    [Arguments]    ${app}
    : FOR    ${port_num}    IN    1    2
    \    ${PorF}    ${message}    Run Keyword And Ignore Error    applicationcontrol.Launch application    ${app}    ${port_num}
    \    Continue For Loop If    '${PorF}'=='FALSE'
    \    ${status}    Run Keyword And Return Status    Check launching status    ${app}    ${port_num}
    \    Continue For Loop If    '${status}'=='False'
    \    ${success_num} =  Run Keyword If    ${status}    Set Variable  ${success_num}+1    ELSE    Set Variable    ${success_num}
    \    ${temp} =  Run Keyword If    ${status}    Evaluate  ${success_num}+1    ELSE    Evaluate    ${success_num}
    \    Set Test Variable  ${success_num}  ${temp}
    \    Exit For Loop

我建议创建一个Python函数:

def Increment_Variable(p_num):
    return  int(p_num) + 1
并称之为

${counter}=  Increment Variable  ${counter}
 

这是行不通的。它显示的是
INFO${success\u num}=0+1
,但它始终是0I将您的代码更改为:
Run关键字,如果${status}设置测试变量${success\u num}${success\u num}+1,则设置测试变量${success\u num}${success\u num}
,然后运行它。然后在第一次迭代中显示
${success\u num}=0+1
,在第二次迭代中显示
${success\u num}=0+1+1
。当我最终执行
${fail\u num}=BuiltIn时。计算${total_num}-${success_num}
它给我7。这是ridiculous@henry哦,是的,我应该使用“evaluate”而不是“Set Variable”(如您在另一个答案中所示)。我相应地更新了我的答案。