RobotFramework中两个变量的总和

问题描述 投票:7回答:2

我有两个变量:

${calculatedTotalPrice} = 42,42

${productPrice1} = 43,15

我已执行

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

我知道

42,85,15

我该如何解决?

python automated-tests robotframework
2个回答
13
投票

默认情况下,变量是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
==============================================================================

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
© www.soinside.com 2019 - 2024. All rights reserved.