Robotframework 如何使用;保留在字典中”;在一个使用robot框架的函数中
我有一个字典列表,我想使用robot框架提取其中的一部分。我看到关键字“保留在字典里”正是我需要的,但我不能使用它 我现在需要的是得到姓名和年龄,去掉性别。为此,我想创建自己的关键字,因为我将在应用程序的每个部分使用不同的关键字。我的尝试:Robotframework 如何使用;保留在字典中”;在一个使用robot框架的函数中,robotframework,Robotframework,我有一个字典列表,我想使用robot框架提取其中的一部分。我看到关键字“保留在字典里”正是我需要的,但我不能使用它 我现在需要的是得到姓名和年龄,去掉性别。为此,我想创建自己的关键字,因为我将在应用程序的每个部分使用不同的关键字。我的尝试: Get data from users [Arguments] @{keys} @{userData} Copy list ${users} :FOR ${user} IN @{users} \
Get data from users
[Arguments] @{keys}
@{userData} Copy list ${users}
:FOR ${user} IN @{users}
\ Keep in Dictionary ${user} ${keys}
[Return] ${userData}
它不起作用,因为${keys}是一个列表,不是函数所需的参数
如何修复它?我将使用而不是保留在字典中
。下面是robot脚本:
*** Test Cases ***
Test Case 1
${keysToRemove} Create List gender
${desiredList} Remove Data From Users ${users} ${keysToRemove}
*** Keywords ***
Remove Data From Users
[Arguments] ${users} ${keysToRemove}
${userData} Create List
${length} Get Length ${users}
FOR ${INDEX} IN RANGE ${length}
${modifiedDictionary} Remove Keys From Dictionary ${users[${INDEX}]} ${keysToRemove}
Append To List ${userData} ${modifiedDictionary}
END
[Return] ${userData}
Remove Keys From Dictionary
[Arguments] ${dictionary} ${keysToRemove}
${length} Get Length ${keysToRemove}
FOR ${INDEX} IN RANGE ${length}
Remove From Dictionary ${dictionary} ${keysToRemove[${INDEX}]}
END
[Return] ${dictionary}
该实现有两个关键字从用户中删除数据
和从字典中删除关键字
Remove Data From Users
接受两个参数Users
和keystemove
users
是用户词典的列表,keyToRemove
是要从users
Remove key From Dictionary
接受两个参数Dictionary
和keystemove
dictionary
是作为dictionary传递的单个用户详细信息,keystemove
是要删除的密钥列表。这只是从用户中删除数据
关键字的帮助函数
${desiredList}
将包含同一个用户列表,其性别从原始列表中删除
以上这些应该可以帮助你实现你的目标,但是也可以有其他方法来解决你的问题
注意:由于Robot框架不支持嵌套for循环,因此需要helper关键字,这是因为Robot框架的一个缺点。您还可以将从用户中删除数据定义为纯python关键字,并去掉第二个helper关键字
多亏了这里给我的答案,我找到了做这件事的方法
谢谢,但这对我来说没有用,删除而不是保留对我来说是一个肮脏的解决方案,并且使代码不可读,如果我需要循环,我将循环复制。除此之外,不必在循环中使用位置参数,您可以循环为:对于${keystemove}中的${key},这是我可以想到的一种方法。这完全取决于你是否接受它。另外,我确实理解在Python中迭代列表元素是可能的,我只使用了其中一种替代方法。
*** Test Cases ***
Test Case 1
${keysToRemove} Create List gender
${desiredList} Remove Data From Users ${users} ${keysToRemove}
*** Keywords ***
Remove Data From Users
[Arguments] ${users} ${keysToRemove}
${userData} Create List
${length} Get Length ${users}
FOR ${INDEX} IN RANGE ${length}
${modifiedDictionary} Remove Keys From Dictionary ${users[${INDEX}]} ${keysToRemove}
Append To List ${userData} ${modifiedDictionary}
END
[Return] ${userData}
Remove Keys From Dictionary
[Arguments] ${dictionary} ${keysToRemove}
${length} Get Length ${keysToRemove}
FOR ${INDEX} IN RANGE ${length}
Remove From Dictionary ${dictionary} ${keysToRemove[${INDEX}]}
END
[Return] ${dictionary}
Get data from users
[Arguments] @{keys}
@{userData} Copy list ${users}
:FOR ${user} IN @{users}
\ Keep in Dictionary ${user} @{keys}
[Return] ${userData}