【问题标题】:Sum of two variables in RobotFrameworkRobotFramework 中两个变量的总和
【发布时间】:2015-09-07 15:33:08
【问题描述】:

我有两个变量:

${calculatedTotalPrice} = 42,42

${productPrice1} = 43,15

我执行了

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

我明白了

42,85,15

我该如何解决?

【问题讨论】:

  • 您期望得到的实际结果是什么?

标签: python automated-tests robotframework


【解决方案1】:

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
==============================================================================

【讨论】:

    【解决方案2】:

    在robotframework中添加两个变量而不需要调用关键字的最简单方法: 你在变量部分声明它

    *** Variables ***
    ${A1}               ${1}
    ${A2}               ${2}
    ${A3}               ${${A1}+${A2}}
    

    那么${A3}的输出是:3

    【讨论】:

    • 它在我的上下文中不起作用。
    • 需要双花括号:${{${A1}+${A2}}}.
    【解决方案3】:

    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
    

    【讨论】:

      【解决方案4】:

      您还可以使用内联 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 了解更多选项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-27
        • 1970-01-01
        • 2019-05-03
        相关资源
        最近更新 更多