Мне кажется, что вы хотите иметь возможность загружать переменные с определенным содержимым, учитывая определенный элемент переменной.При выбранном вами подходе это невозможно, как объяснил @Bryan Oakley.
Тем не менее, возможно иметь переменные наборы данных, и большинство из нас использует их ежедневно.Часто сценарий использования состоит в том, чтобы иметь один набор тестов, который можно запускать в нескольких средах.Каждая среда имеет разные URL, учетные данные и другие свойства.
Одним из подходов является загрузка набора переменных из командной строки с использованием файла переменных.Документация для файлов переменных предлагает несколько подходов:
- Определение переменных Python в файле Python и ссылки на него.
- Определение переменных в файле переменных YAML.
- Определение переменных в классе Python или функции Python.
Первые две содержат фиксированные переменные, а последняя может принимать аргумент и возвращать значения в зависимости от ввода.В приведенном ниже примере мы используем функцию Python для возврата переменной ${name}
с определенным значением, заданным для конкретного ввода.
variable_file.py
def get_variables(platform=None, key=None):
if platform.lower() == "android":
variables = {'name' : 'android'}
elif platform.lower() == "ios":
variables = {'name' : 'ios'}
else:
variables = {'name' : 'No Device'}
return variables
variable_file.robot
*** Settings ***
Variables ${EXECDIR}/variable_file.py ios
*** Test Cases ***
TC
Log To Console ${name}
В этом примере ссылка на файл переменнойкак Variables ${EXECDIR}/variable_file.py ios
с аргументом ios
.В результате получается переменная ${name}
, содержащая значение ios
.