Как использовать дополнительные аргументы, переданные с переменной file - Robot framework
в руководстве пользователя Robot Framework есть раздел, который описывает, как передавать файлы переменных, а также некоторые возможные переменные, если это необходимо.
Пример:pybot --variablefile taking_arguments.py:arg1:arg2
мой вопрос в том, Могу ли я использовать эти возможные переменные arg1 и arg2 в taking_arguments.py файл после этого, и если я могу, то как?
сейчас у меня есть это:
pybot --variablefile taking_arguments.py:arg1:arg2
taking_arguments.py содержание:
IP_PREFIX = arg1
но это приводит к
NameError: name 'arg1' is not defined
2 ответов
единственный способ, чтобы использовать переменные в файле аргументов с помощью --variablefile filename.py:arg1:arg2
синтаксис заключается в том, чтобы ваш переменный файл реализовал функцию get_variables
. Эта функция будет передавать аргументы, указанные в командной строке, и должна возвращать словарь имен и значений переменных.
например, рассмотрим следующий файл переменной с именем "variables.py":
def get_variables(arg1, arg2):
variables = {"argument 1": arg1,
"argument 2": arg2,
}
return variables
этот файл создает две переменные робота с именем ${argument 1}
и ${argument 2}
. Значения для этих переменными будут значения аргументов,которые были переданы. Вы можете использовать этот файл переменных следующим образом:
pybot --variablefile variables.py:one:two ...
в этом случае, строки "один" и "два" будут переданы get_variables
как два аргумента. Тогда они будут связаны с двумя переменными, в результате чего ${argument 1}
установлен до one
и ${argument 2}
установлен до two
.
Я не пытался передать начальные значения переменным в файле переменных... Поэтому я не уверен, что это возможно...
Я могу предложить альтернативу...
вы можете вручную определить некоторые переменные с их значениями в команде pybot...
pybot -variablefile taking_arguments.py -v IP_PREFIX:arg1 -v Varibale:Value
Если я не ошибаюсь, эти переменные, инициированные вручную, имеют более высокий приоритет, чем в файле переменных. Поэтому, даже если они инициируются в файле переменных, значения, передаваемые с помощью - V опция будет использоваться в testcase.
надеюсь, это поможет вам!