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