Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 我怎样才能在Robot框架中用数字排序的数字检查列表_Sorting_Robotframework - Fatal编程技术网

Sorting 我怎样才能在Robot框架中用数字排序的数字检查列表

Sorting 我怎样才能在Robot框架中用数字排序的数字检查列表,sorting,robotframework,Sorting,Robotframework,我在检查我的名单时有问题。事实上,我需要检查列表是否在Robot框架中按数字顺序排列 假设我们有一个列表 ${nice}= ['13', '12', '10', '7', '6', '6', '6', '4', '3', '2', '2', '1', '1', '1', '0', '0'] 我需要验证第一个元素是否大于第二个元素,第二个元素是否大于第三个元素,依此类推 问题是,在Robot框架中,关键字“排序列表”并没有以正确的方式对数字列表排序 其中一个决定是在robot框架中调用Pytho

我在检查我的名单时有问题。事实上,我需要检查列表是否在Robot框架中按数字顺序排列

假设我们有一个列表

${nice}= ['13', '12', '10', '7', '6', '6', '6', '4', '3', '2', '2', '1', '1', '1', '0', '0']
我需要验证第一个元素是否大于第二个元素,第二个元素是否大于第三个元素,依此类推

问题是,在Robot框架中,关键字“排序列表”并没有以正确的方式对数字列表排序


其中一个决定是在robot框架中调用Python方法“sort”或“sorted”,但可能有更好的方法吗?

排序列表关键字将列表排序为字符串,因此它将
11
放在
2
之前

如果您必须检查列表是否按数字排序,则可以不进行排序。您应该简单地迭代列表并相互比较相邻的元素。例如:

*** Variables ***
@{LIST_NOK}     13    12    10    7    6    6    6    4    3    2    2    1    1    1    0    0
@{LIST_OK}     999    765    213     78    21    12   2

*** Test Cases ***
Test
    Check List    ${LIST_OK}
    Check List    ${LIST_NOK}
    
    
*** Keywords ***
Check List
    [arguments]    ${list}
    ${length}=    Get Length    ${list}
    FOR     ${i}    IN RANGE    ${length-1}
        ${first}=    Set Variable    ${list}[${i}]    # element at index i in ${list}
        ${second}=   Set Variable    ${list}[${i+1}]  # element at index i+1 in ${list}
        Run Keyword If    ${first} <= ${second}    Fail    Element ${first} is not greater than ${second}.
    END
***变量***
@{LIST_NOK}13 12 10 7 6 6 4 3 2 1 1 0 0
@{LIST_OK}999 765 213 78 21 12 2
***测试用例***
试验
检查列表${List_OK}
检查列表${List_NOK}
***关键词***
检查表
[参数]${list}
${length}=获取长度${list}
对于范围为${length-1}的${i}
${first}=在${list}中的索引i处设置变量${list}[${i}]#元素
${second}=在${list}中的索引i+1处设置变量${list}[${i+1}]#元素

如果${first}排序列表关键字将列表排序为字符串,则运行关键字,例如,它将
11
置于
2
之前

如果您必须检查列表是否按数字排序,则可以不进行排序。您应该简单地迭代列表并相互比较相邻的元素。例如:

*** Variables ***
@{LIST_NOK}     13    12    10    7    6    6    6    4    3    2    2    1    1    1    0    0
@{LIST_OK}     999    765    213     78    21    12   2

*** Test Cases ***
Test
    Check List    ${LIST_OK}
    Check List    ${LIST_NOK}
    
    
*** Keywords ***
Check List
    [arguments]    ${list}
    ${length}=    Get Length    ${list}
    FOR     ${i}    IN RANGE    ${length-1}
        ${first}=    Set Variable    ${list}[${i}]    # element at index i in ${list}
        ${second}=   Set Variable    ${list}[${i+1}]  # element at index i+1 in ${list}
        Run Keyword If    ${first} <= ${second}    Fail    Element ${first} is not greater than ${second}.
    END
***变量***
@{LIST_NOK}13 12 10 7 6 6 4 3 2 1 1 0 0
@{LIST_OK}999 765 213 78 21 12 2
***测试用例***
试验
检查列表${List_OK}
检查列表${List_NOK}
***关键词***
检查表
[参数]${list}
${length}=获取长度${list}
对于范围为${length-1}的${i}
${first}=在${list}中的索引i处设置变量${list}[${i}]#元素
${second}=在${list}中的索引i+1处设置变量${list}[${i+1}]#元素

运行关键字If${first}您可以使用python的
排序
使用
求值
关键字以降序获得列表元素,然后使用
列表应相等
关键字比较它们

Import Library     Collections
@{nice}=    Create List    13    12    10    7    6    6    6    4    3    2    2    1    1    1    0    0                                              
${sorted}=    Evaluate     sorted(${nice}, key=int, reverse=True)                                                                                       
Lists Should Be Equal    ${nice}    ${sorted}   

您可以使用python的
sorted
使用
Evaluate
关键字以降序获得列表元素,然后使用
列表应相等
关键字对它们进行比较

Import Library     Collections
@{nice}=    Create List    13    12    10    7    6    6    6    4    3    2    2    1    1    1    0    0                                              
${sorted}=    Evaluate     sorted(${nice}, key=int, reverse=True)                                                                                       
Lists Should Be Equal    ${nice}    ${sorted}