RobotFramework中两个变量的总和

时间:2015-06-22 08:48:12

标签: python automated-tests robotframework

我有两个变量:

${calculatedTotalPrice} = 42,42

${productPrice1} = 43,15

我执行了

${calculatedTotalPrice}     Evaluate ${calculatedTotalPrice}+${productPrice1}

我得到了

42,85,15

我该如何解决?

4 个答案:

答案 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 了解更多选项。