Robotframework获取重复的迭代

Robotframework获取重复的迭代,robotframework,Robotframework,在Robot框架中,im使用repeat多次调用关键字x。 我想要的是在调用的关键字中获得迭代次数 我尝试的是: ${iteration} = 0 *** Test Cases *** Start Test repeat keyword ${duration} Run test iteration ${iteration} *** Keywords *** Run test iteration ${loop} ${iteration}= Set Var

在Robot框架中,im使用repeat多次调用关键字x。 我想要的是在调用的关键字中获得迭代次数

我尝试的是:

${iteration} =          0

*** Test Cases ***
Start Test
    repeat keyword  ${duration}  Run test iteration ${iteration}

*** Keywords ***
Run test iteration ${loop}
    ${iteration}=  Set Variable  evaluate  ${iteration}+1
我所期望的是,在报告中,所谓的关键字将如下所示:

Run test iteration 0
Run test iteration 1
Run test iteration 2
但我明白了

Run test iteration 0
Run test iteration 0
Run test iteration 0
有可能得到我预测的结果吗


使用robotframework 3.1.1是的,它是,它可以归结为变量范围。
在关键字中执行赋值时,该变量的作用域是关键字的局部作用域-它在关键字中可见(不是对调用它的潜在关键字可见),并在关键字完成时删除。这是毫无疑问的,因为它与变量部分中定义的名称相同-您实际上是在用相同的名称重新定义一个新的名称,例如覆盖它。并且不以任何方式改变“全局”值。
然后在下一个循环中重复此操作,因此每次运行都会得到0

修复很简单-更改值后,声明希望此变量在更高的范围内可见(高于当前关键字)。您可以选择3个案例级别、套件或全局(因此所有后续套件和案例都可以使用它);以下是案例级别的示例:

Run test iteration ${loop}
    ${iteration}=  Evaluate  ${iteration}+1
    Set Test Variable    ${iteration}

这对我不起作用。这可能是因为
${iteration}
的值在这里只计算一次:
重复关键字${duration}运行测试迭代${iteration}
,而不是在每个循环中。因此,在日志中,你会得到它的第一个值,但如果你打开它,你会看到它的值确实增加了。我想是这样的,这意味着它不可能以我想要的方式重复。谢谢验证!