我无法在机器人框架中验证小于和大于

时间:2017-12-04 09:11:00

标签: python python-2.7 robotframework

我试图验证0< 4.3< 6,我尝试使用Robot框架进行评估,但我无法得到结果,因为我找不到任何方法将字符串转换为浮点数,然后我写了一个python类来实现这个,但是对于它显示传递的所有条件

我的python代码:

def should_be_x_than_y (number1, relation, number2, relation1, number3):

    if relation =="<" and relation1 == "<":
        print(relation)
        print (relation1)
        print (number1)
        print (number2)
        print (number3)
        **return float(number1) < float(number2) < float(number3)**
    if relation ==">" and relation1 == ">":
        return float(number1) > float(number2) > float(number3)
    if relation =="=>" and relation1 == "<=":
        return float(number1) >= float(number2) <= float(number3)
    if relation =="<=" and relation1 == "=>":
        return float(number1) <= float(number2) >= float(number3)
    if relation =="=":
        return float(number1) == float(number2)

机器人代码:

should_be_x_than_y   0  <  ${words[0]}  <  3

${word[0]}的值是4.3,所以理想情况下应该失败,但它没有

2 个答案:

答案 0 :(得分:2)

原始问题可能是06不在$ {}?

这对我很有用

*** Variables ***
@{words}      4.8    7.8


*** Test Cases ***
Test1
    [Tags]                             example
    Run Keyword Unless     ${0} < ${words[0]} < ${6}     Fail

Test2
    [Tags]                             example
    Run Keyword Unless     ${0} < ${words[1]} < ${6}     Fail

希望有所帮助,请告诉我这不是你的问题!

==============================================================================
Basic
==============================================================================
Test1                                                                 | PASS |
------------------------------------------------------------------------------
Test2                                                                 | FAIL |
AssertionError

答案 1 :(得分:1)

在您的问题中,您声明Robot Framework无法将字符串转换为Float。这是Python开发的基础。但是,这是不正确的。在Variables上的机器人框架用户指南中,它指出:

  

变量语法可用于创建整数和   浮点数,如下例所示......

BuiltIn Library中,Convert to Number的关键字也明确表示支持浮点数

  

将给定项目转换为浮点数。如果是可选的   精度为正或零,返回的数字四舍五入为   小数位数。

这意味着您可以使用常规关键字轻松完成比较。

*** Variables ***
@{words}    4.7    7.8

*** Test Cases ***
TC
                                           Should Be X Than Y   0 < ${words[0]} < 6
    Run Keyword and Continue on Failure    Should Be X Than Y   0 < ${words[1]} < 6

*** Keywords ***
Should Be X Than Y
    [Arguments]    ${expression}
    Run Keyword If     
    ...    not(${expression})    
    ...    Fail    Number does not match Expression pattern.

正如@Bryan Oakley强调的那样,使用Fail生成失败而不是返回值非常重要。