Robotframework Robot框架的测试模板不能使用变量
我在使用robotframework模板时遇到了一些问题,如何将变量传递给模板? 这是我的密码:Robotframework Robot框架的测试模板不能使用变量,robotframework,Robotframework,我在使用robotframework模板时遇到了一些问题,如何将变量传递给模板? 这是我的密码: *** Keywords *** re-random-value ${random int} = Evaluate random.randint(1, 5) [Return] ${random-num} *** Test Cases *** test1 [Template] test template re-random-value #
*** Keywords ***
re-random-value
${random int} = Evaluate random.randint(1, 5)
[Return] ${random-num}
*** Test Cases *** test1
[Template] test template
re-random-value # random-num is return value from keywords re-random-value
*** Keywords ***
test template
[Arguments] ${random-num}
log ${random-num}
当我运行测试用例
test1
时,结果是re random value
,而不是我预期的关键字re random value
返回的值数。Robot Framework的文档说明如下:
。。。带有模板的测试用例只包含
模板关键字
在测试模板的上下文中,参数永远不能是关键字,示例中的方法不会按原样工作
假设每行/测试用例中的关键字可能会发生变化,可以构造一个中间关键字,将关键字的名称作为参数并执行它。在下面的示例更新版本中,就是这样做的。使用FOR循环生成多个值
*** Test Cases ***
test1
[Template] test template
FOR ${index} IN RANGE 1 5
re-random-value # random-num is return value from keywords re-random-value
END
*** Keywords ***
test template
[Arguments] ${keyword}
${value} Run Keyword ${keyword}
Log To Console ${value}
re-random-value
${random int} = Evaluate random.randint(1, 5) modules=random
[Return] ${random int}
结果(记住数值的随机性):
“假设一个参数永远不能是一个关键字”-这不是真的。关键字可以作为参数传递给其他关键字。例如,您将关键字作为参数传递给
Run关键字
关键字。我认为您仍然不正确。我可以创建一个接受关键字作为参数的测试模板。事实上,你的例子不正说明了这一点吗?您有一个名为${keyword}
的参数。该示例提供了一个值,然后在模板关键字中将其解释为值参数。我对这个问题的解释是,called关键字返回一个由模板测试用例直接调用的值。技术上不同,但功能上相似。
==============================================================================
test1 1
3
2
3
| PASS |
------------------------------------------------------------------------------