我有两个变量:
${calculatedTotalPrice} = 42,42
${productPrice1} = 43,15
我已执行
${calculatedTotalPrice} Evaluate ${calculatedTotalPrice}+${productPrice1}
我知道
42,85,15
我该如何解决?
默认情况下,变量是Robot中的字符串。因此,您的前两个语句将类似“ xx,yy”的字符串分配给您的变量。然后“评估”就像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