Robotframework获取重复的迭代
在Robot框架中,im使用repeat多次调用关键字x。 我想要的是在调用的关键字中获得迭代次数 我尝试的是: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
${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}
,而不是在每个循环中。因此,在日志中,你会得到它的第一个值,但如果你打开它,你会看到它的值确实增加了。我想是这样的,这意味着它不可能以我想要的方式重复。谢谢验证!