Методы Python из раздела Переменные RobotFramework - PullRequest
0 голосов
/ 12 июня 2018

У меня есть файл python с именем getProperty.py, в котором у меня есть только один метод!

import configparser

def desiredCapability(platform, key):
    conf= configparser.RawConfigParser()
    if platform.lower() == "android":
      conf.read("somepath")
    elif platform.lower() == "ios":
      conf.read("some path")
    else:
      return None
    strr=conf.get( "main",key)
    return strr    

У меня есть файл робота, в котором у меня есть переменные раздел

***Settings***
 Library   getProperty.py

***Variables***
 ${deviceName}    #Here i want to call the method 

Когда я пытаюсь вызвать метод вэтот раздел переменных, он принимает как строку!Я могу вызвать метод внутри раздела Контрольные случаи без проблем!Но я хочу это в переменных разделе!

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Мне кажется, что вы хотите иметь возможность загружать переменные с определенным содержимым, учитывая определенный элемент переменной.При выбранном вами подходе это невозможно, как объяснил @Bryan Oakley.

Тем не менее, возможно иметь переменные наборы данных, и большинство из нас использует их ежедневно.Часто сценарий использования состоит в том, чтобы иметь один набор тестов, который можно запускать в нескольких средах.Каждая среда имеет разные URL, учетные данные и другие свойства.

Одним из подходов является загрузка набора переменных из командной строки с использованием файла переменных.Документация для файлов переменных предлагает несколько подходов:

  1. Определение переменных Python в файле Python и ссылки на него.
  2. Определение переменных в файле переменных YAML.
  3. Определение переменных в классе 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.

0 голосов
/ 12 июня 2018

Нельзя вызывать ключевые слова в таблице Variables.Из руководства пользователя роботизированной платформы :

Наиболее распространенным источником переменных являются таблицы переменных в файлах тестовых примеров и файлов ресурсов.Таблицы переменных удобны, потому что они позволяют создавать переменные в том же месте, что и остальные тестовые данные, а необходимый синтаксис очень прост. Их основными недостатками является то, что значения всегда являются строками, и их нельзя создавать динамически. Если любой из них является проблемой, вместо него можно использовать переменные файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...