#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}