我需要定义一个二维数组变量 我已经能够使用列表变量,但现在我正在处理的项目需要一个数组。
这是怎么做的?
我怎样才能"循环"通过二维数组?
答案 0 :(得分:4)
尝试使用列表列表。您可以使用extended variable syntax访问内部列表中的项目。
*** Settings ***
Library Collections
*** Variables ***
@{colors} red green blue
@{animals} cow pig dog
@{things} ${animals} ${colors}
*** Test Cases ***
2-Dimensional List
Log List ${things}
Log The ${things[0][1]} is ${things[1][1]}
列表长度为2,它包含以下项目: 0:[u'cow',u'pig',u'dog'] 1:[u'red',u'green',u'blue']
猪是绿色的
答案 1 :(得分:1)
机器人对数组变量的术语是“list”。您可以使用@{...}
将变量指定为列表。这是一个示例,显示如何在变量表中创建列表,以及如何使用Create List关键字在测试中执行此操作:
*** Variables ***
| # create a list in a variable table
| @{Colors} | red | orange | green | blue
*** Test Cases ***
| Example of using lists
| | # create an array inside a test
| | @{Names}= | Create list | homer | marge | bart
| | # Verify that the elements are arrays
| | Length should be | ${Colors} | 4
| | Length should be | ${Names} | 3
要创建二维列表,您可以创建列表列表:
| | ${array}= | Create list | ${Names} | ${Colors}
extended variable syntax可让您访问各个元素:
| | log | element 1,1: ${array[1][1]}
有关详细信息,请参阅List variables
中标题为Robot Framework User Guide的部分您可以使用字典来模拟多维数组。例如:
*** Settings ***
| Library | Collections
*** Test Cases ***
| Example of using a dictionary to simulate a two dimensional array
| | ${array}= | Create dictionary
| | ... | 0,0 | zero, zero
| | ... | 0,1 | zero, one
| | ... | 1,0 | one, zero
| | ... | 1,1 | one, one
| | Should be equal | ${array["1,0"]} | one, zero
答案 2 :(得分:0)
我找到了循环列表列表的方法:
*** Settings ***
Library Collections
*** Variables ***
@{colors} red green blue
@{animals} cow pig dog
@{things} ${animals} ${colors}
*** Test Cases ***
Nested for loop example
: FOR ${x} IN @{animals}
\ Keyword with for loop ${x}
*** Keywords ***
Keyword with for loop
[Arguments] ${x}
:FOR ${y} IN @{colors}
\ Log The ${x} is ${y}
归功于ombre42。谢谢!
答案 3 :(得分:0)
模拟二维数组的可能方法是制作一个字符串列表和 split the string 使用它。与列表列表相比的优势在于,每一行都定义为一行,因此您在添加或删除行时不会出错。
这个数组使用空格作为分隔符。根据您的数据,您可能需要使用其他分隔符。
macro