我在检查我的名单上有问题。实际上,我需要检查列表是在机器人框架中的数字排序。
让我们想象一下我们有一个清单
${nice}= ['13', '12', '10', '7', '6', '6', '6', '4', '3', '2', '2', '1', '1', '1', '0', '0']我需要验证第一个元素大于第二个元素,第二个元素大于第三个元素,依此类推。
问题是,在机器人框架中,关键字“排序列表”没有以正确的方式对数字列表进行排序。
其中一个决定是在机器人框架中调用Python方法“排序”或“排序”,但也许有更好的方法来做到这一点?
发布于 2020-08-26 14:49:00
排序列表关键字将列表排序为字符串,因此它将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}[${i+1}],所以扩展变量语法正在使用,那么您应该使用Python。要么通过评估关键字,要么通过一些小的测试库。
发布于 2020-08-27 16:43:03
您可以使用python的sorted使用Evaluate关键字按降序获得列表元素,然后使用Lists Should Be Equal关键字对它们进行比较。
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} https://stackoverflow.com/questions/63598557
复制相似问题