Мне нужно изменить переменную робота с помощью командной строки, используя другую переменную

#python #robotframework

Вопрос:

Поэтому я много размышлял над этим, поэтому я думаю, что, возможно, я думаю о сложном решении простой проблемы. У меня есть тест в роботе, который использует переменную в словаре python.

Файл робота:

 *** Settings ***
Variables       Data.py

*** Variables ***
${check}=       TEST.abc

*** Test Cases ***
Test                          
    Do the test         ${check}  
 

Словарь python:

 DICT__TEST = {"abc": "123", "def":"456"}
 

В приведенном выше случае я хотел бы, например, передать переменную "def" в качестве параметра в командной строке для замены переменной ${check} .
Я видел, что есть --variable , но он просто изменяет переменную робота на строку, а не на другую переменную.
Словарь уже нормально работает с роботом, так как у меня мало опыта, я могу подумать об очень сложном способе решения чего-то простого. Я принимаю другие предложения, но в основном у меня есть очень большая строка, которую мне нужно передать через командную строку, чтобы изменить свою переменную в роботе.

Комментарии:

1. Вы можете указать «def» в командной строке —variable и использовать его в качестве ключа для получения из словаря в настройке пакета

2. не могли бы вы привести пример этого?

Ответ №1:

Если я правильно понял, у вас есть пары ключ-значение в словаре, и вы хотите сохранить значение в переменной. И вы хотите предоставить ключ из командной строки.

Вы можете запустить robot -v dictkey:def mytest.robot , и он будет использовать переменную

 *** Settings ***
Library         Collections
Suite Setup     SetDict

*** Variables ***
${dictkey}    abc

*** Keywords ***
SetDict
    ${sample_dict}=     Create Dictionary    abc  123   def   456
    Set Suite Variable  ${sample_dict}

*** Test Cases ***
Test
    ${value}=         Get From Dictionary    ${sample_dict}   ${dictkey}
    Log To Console    ${value}