创建和使用二维数组

时间:2014-07-30 12:16:08

标签: arrays multidimensional-array automated-tests robotframework

我需要定义一个二维数组变量 我已经能够使用列表变量,但现在我正在处理的项目需要一个数组。

这是怎么做的?
我怎样才能"循环"通过二维数组?

4 个答案:

答案 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