什么时候应该在Robot测试框架中使用变量引用

时间:2017-02-28 21:40:50

标签: robotframework

我正在使用机器人编写测试用例一段时间,但我仍然无法在脑海中弄清楚这一点,就像一条规则告诉我何时需要引用? 例如,有变量:

${variable}
$variable
${variable.att}
'${variable}'
"${variable}"
None
'${None}'

它们在Evaluate关键字中的时间是什么?

看起来${1}是数字,1是字符串,但在FOR循环中,有:

: FOR ${variable} IN 1 2现在1似乎是数字?

1 个答案:

答案 0 :(得分:3)

行情

粗略地说,只要将变量视为python表达式或语句,就需要添加引号。

当你使用Evaluate时,你传递了python代码来执行。 Python要求字符串在引号内表示。因此,如果您的变量${variable}包含五个字符hello,则要将其与Evaluate一起使用,您必须使用引号。

例如,给出以下机器人声明:

${result}=  Evaluate  '${variable}' + " world"

这会导致以下python代码被评估:

'hello' + " world"

如果没有引号,它将是hello + " world",在这种情况下,python认为hello代表一个变量。

花括号中的数字(例如:$ {1})

对于花括号内的数字,这只是将字符串转换为实际数字的一些额外语法。当您调用需要实际数字的关键字而不是包含数字的字符串时,这非常有用。

花括号中的数字行为在此处的用户指南中有所描述:http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#number-variables

$ {NONE}

当您调用关键字(通常是基于python)时,使用

$ {NONE},您需要传递python值None,或者将关键字的结果与python值{ {1}}。你永远不会在这个变量周围加上引号。没有引号或花括号的字符串None被机器人视为文字字符串None