RobotFramework 中两个变量的总和
Sum of two variables in RobotFramework
我有两个变量:
${calculatedTotalPrice} = 42,42
${productPrice1} = 43,15
我执行了
${calculatedTotalPrice} Evaluate ${calculatedTotalPrice}+${productPrice1}
我得到了
42,85,15
我该如何解决?
默认情况下,Robot 中的变量是字符串。
因此,您的前两个语句将 "xx,yy" 之类的字符串分配给您的变量。
然后 "evaluate" 就像 Python 那样执行你的语句。
因此,用逗号添加两个字符串将生成一个列表:
$ python
>>> 1,2+3,4
(1, 5, 4)
所以您应该使用 number variables 使用 ${} 和 。 (点)用于此示例中的分隔符:
*** Test Cases ***
sum of variables
${calculatedTotalPrice} = set variable ${42.42}
${productPrice1} = set variable ${43.15}
${calculatedTotalPrice} = Evaluate ${calculatedTotalPrice}+${productPrice1}
log to console ${calculatedTotalPrice}
这将产生:
$ pybot test.robot
==============================================================================
Test
==============================================================================
sum of variables ...85.57
==============================================================================
Laurent 的回答几乎总是最好的选择,但如果出于某种原因您希望或要求您的 Robot 变量是包含数字的字符串,您也可以在 Evaluate 调用中将它们转换为数字:
*** Test Cases ***
Test1
${I1} = set variable 10
${I2} = set variable 5
${F1} = set variable 42.42
${F2} = set variable 57.15
${ISUM} = Evaluate int(${I1}) + int(${I2})
${FSUM} = Evaluate float(${F1}) + float(${F2})
log to console ${ISUM} ${FSUM}
这给出了输出:
Test1 ......15 99.57
在robotframework中添加两个变量无需调用关键字的最简单方法:
你在变量部分声明它
*** Variables ***
${A1}
${A2}
${A3} ${${A1}+${A2}}
那么 ${A3} 的输出是:3
您还可以使用内联 Python 评估。
*** Variables ***
${calculatedTotalPrice} ${42.42}
${productPrice1} ${43.15}
*** Test Cases ***
Add two variables
${sum} set variable ${{ $calculatedTotalPrice + $productPrice1 }}
should be equal as integers ${sum} ${85.57}
查看文档 here 了解更多选项。
我有两个变量:
${calculatedTotalPrice} = 42,42
${productPrice1} = 43,15
我执行了
${calculatedTotalPrice} Evaluate ${calculatedTotalPrice}+${productPrice1}
我得到了
42,85,15
我该如何解决?
默认情况下,Robot 中的变量是字符串。 因此,您的前两个语句将 "xx,yy" 之类的字符串分配给您的变量。 然后 "evaluate" 就像 Python 那样执行你的语句。 因此,用逗号添加两个字符串将生成一个列表:
$ python
>>> 1,2+3,4
(1, 5, 4)
所以您应该使用 number variables 使用 ${} 和 。 (点)用于此示例中的分隔符:
*** Test Cases ***
sum of variables
${calculatedTotalPrice} = set variable ${42.42}
${productPrice1} = set variable ${43.15}
${calculatedTotalPrice} = Evaluate ${calculatedTotalPrice}+${productPrice1}
log to console ${calculatedTotalPrice}
这将产生: $ pybot test.robot
==============================================================================
Test
==============================================================================
sum of variables ...85.57
==============================================================================
Laurent 的回答几乎总是最好的选择,但如果出于某种原因您希望或要求您的 Robot 变量是包含数字的字符串,您也可以在 Evaluate 调用中将它们转换为数字:
*** Test Cases ***
Test1
${I1} = set variable 10
${I2} = set variable 5
${F1} = set variable 42.42
${F2} = set variable 57.15
${ISUM} = Evaluate int(${I1}) + int(${I2})
${FSUM} = Evaluate float(${F1}) + float(${F2})
log to console ${ISUM} ${FSUM}
这给出了输出:
Test1 ......15 99.57
在robotframework中添加两个变量无需调用关键字的最简单方法: 你在变量部分声明它
*** Variables ***
${A1}
${A2}
${A3} ${${A1}+${A2}}
那么 ${A3} 的输出是:3
您还可以使用内联 Python 评估。
*** Variables ***
${calculatedTotalPrice} ${42.42}
${productPrice1} ${43.15}
*** Test Cases ***
Add two variables
${sum} set variable ${{ $calculatedTotalPrice + $productPrice1 }}
should be equal as integers ${sum} ${85.57}
查看文档 here 了解更多选项。