如何在机器人框架中动态迭代从yaml文件导入的变量



下面是我们用于变量的device_details.yaml文件,

Device1:
IP: 192.168.23.21
Port: 23
admin_cred:
username: admin
password: Cisco123$
nonadmin_cred:
username: six 
password: six
Device2:
IP: 192.168.23.22
Port: 23
admin_cred:
username: admin
password: Cisco123$
nonadmin_cred:
username: six
password: six

以下是机器人片段:

*** Settings ***
Variables    /tmp/robot/device_details.yaml
*** Test Case ***
Test
Device Detail
***Keywords****
Device Detail
Log   Device1 IP is ${Device1.IP}
Log   Device1 port is ${Device1.Port}
Log   Device1 admin username is ${Device1.admin_cred.username}
Log   Device1 admin password is ${Device1.admin_cred.password}
Log   Device1 non-admin username is ${Device1.nonadmin_cred.username}
Log   Device1 non-admin password is ${Device1.nonadmin_cred.password}
Log   Device2 IP is ${Device2.IP}
Log   Device2 port is ${Device2.Port}
Log   Device2 admin username is ${Device2.admin_cred.username}
Log   Device2 admin password is ${Device2.admin_cred.password}
Log   Device2 non-admin username is ${Device2.nonadmin_cred.username}
Log   Device2 non-admin password is ${Device2.nonadmin_cred.password}

我们最终可能会在 yaml 文件中拥有 200 到 300 个设备详细信息。 除了调用每个变量,有没有办法一次又一次地动态迭代变量?

最佳方法取决于你希望如何测试设备和注册结果。如果您总是在测试每个设备,那么在机器人框架中循环,如下所示。但是,使用命令行参数也可以加载变量文件。然后,您将使用测试业务流程循环遍历设备。

设备.yaml

Devices:
a1:
IP: 192.168.23.21
b2:
IP: 192.168.23.22

测试机器人

*** Settings ***
Library    Collections
Variables    devices.yaml
*** Test Case ***
Test
${device_names}    Get Dictionary Keys    ${devices}
FOR    ${device}    IN    @{device_names}
Log   Device1 IP is ${devices}[${device}][IP]
END

最新更新