我有两个变量:
${calculatedTotalPrice} = 42,42
${productPrice1} = 43,15
我执行了
${calculatedTotalPrice} Evaluate ${calculatedTotalPrice}+${productPrice1}
我得到了
42,85,15
我该如何解决?
答案 0 :(得分:13)
默认情况下,变量是Robot中的字符串。 所以你的前两个语句是分配字符串,如" xx,yy"对你的vars。 然后"评估"只需像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
==============================================================================
答案 1 :(得分:1)
在robotframework中添加两个变量而无需调用关键字的最简单方法: 您可以在“变量”部分中声明它
*** Variables ***
${A1} ${1}
${A2} ${2}
${A3} ${${A1}+${A2}}
然后$ {A3}的输出是:3
答案 2 :(得分:0)
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
答案 3 :(得分:0)
您也可以使用内联 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 了解更多选项。