Robotframework 如何在Robot框架中对两个列表执行不区分大小写的比较

Robotframework 如何在Robot框架中对两个列表执行不区分大小写的比较,robotframework,Robotframework,我有两份清单 ListA = [Dog, Cat, Monkey] ListB = [dog, Cat, Monkey] 我已经使用了列表应该包含用于比较的子列表,但由于案例更改的明显原因,它失败了。仅使用Robot框架关键字如何处理此问题。假设您有两个列表 ${list1}和${list2} 使用评估,这是Robot框架内置的库关键字 ${list1_lowerCase}= Evaluate "${List}".lower() ${list2_lowerCase}= E

我有两份清单

ListA = [Dog, Cat, Monkey]

ListB = [dog, Cat, Monkey]
我已经使用了列表应该包含用于比较的子列表,但由于案例更改的明显原因,它失败了。仅使用Robot框架关键字如何处理此问题。

假设您有两个列表
${list1}
${list2}

使用评估,这是Robot框架内置的库关键字

${list1_lowerCase}=    Evaluate     "${List}".lower()
${list2_lowerCase}=    Evaluate     "${List2}".lower()
Lists Should Be Equal   ${list1_lowerCase}      ${list2_lowerCase}

你能发布你的机器人框架测试用例吗?我还认为你需要做一些Python。我能想到的唯一一件事是让所有字符串都是相同的大小写,然后比较它们。除此之外,我还不确定:如何迭代列表并将值与
进行比较,这些值应等于字符串
,以及设置
ignore\u case=True
?是的,这似乎是目前唯一的选项@Goralight:原始TC从一些ldap命令和文件中获取列表。它变得越来越复杂,所以我试着让它尽可能简单。请阅读并遵循它的建议。当你的列表不包含列表时,你为什么要使用“列表应该包含子列表”,这很好!比我建议的循环好得多。这实际上并没有执行所请求的操作,
求值
将降低
${List}
的字符串表示形式的大小写,例如
${list1\u lowerCase}
实际上是一个带值的字符串
[u'aaa',…
-带方括号,u,逗号等。连续的
列表应该相等
是一种过分的做法-
应该相等为字符串
对于这种情况是正确的。保留列表类型的一种方法是使用列表理解-
${list1\u lowerCase}=Evaluate[el.lower()对于el in$List]
,它将创建一个新列表,其中原始列表的所有成员都经过lower()检查另一个(一行)检查是
${equal}=Evaluate len($List)==len($List2)和all($List[i]。lower()=$List2[i]。lower()表示范围内的i($len($List)))
-但这很难理解,如果您不熟悉python,我不推荐使用它