Как использовать дополнительные аргументы, переданные с переменной 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.

надеюсь, это поможет вам!