Как вызвать функцию Python с параметрами из RobotFramework? - PullRequest
1 голос
/ 05 февраля 2020

Мне нужна ваша помощь для решения следующей проблемы:

В рамках моего теста инфраструктуры фреймворка я должен выполнить некоторую проверку также через Linux CLI. Я импортировал SSHLibrary и могу правильно подключиться к своему Linux ящику:

*** Keywords ***
Verify Service On All Nodes
    Open Connection  ${host}  prompt=REGEXP:[$|#]
    login   ${user}     ${user_pass}
    SSHLibrary.Read Until Prompt
    write   su - \n
    Read Until  Password:
    Write   ${root_pass}\n
    BuiltIn.sleep  10
    SSHLibrary.Set Client Configuration  prompt=~]
    Read Until Prompt
    Write   verify  #this stepp calls a shell script which does the required check
    BuiltIn.sleep  90
    SSHLibrary.Read Until Prompt
    ${output}  SSHLibrary.Read Until Prompt
    Log     ${output}

Приведенный выше фрагмент правильно регистрирует вывод моего скрипта проверки в отчет, но я бы хотел go шаг вперед.

Я написал функцию Python, которая проверяет вывод приведенного выше сценария.

def verify_service_state(ab11, ab12, s):
    import re
    servers = [ab11, ab12]
    for i in servers:
        r1 = re.search(r"^Checking listening ports on " + (i) + " for roles: \(AB\)" + "\nThere were no errors reported.", s, re.MULTILINE)
        if (r1):
            print("Listening ports are open " + (i))
        else:
            print("Not all listening ports are open on " + (i))
        r2 = re.search(r"^Checking process counts on " + (i) + " for roles: \(AB\)" + "\nThere were no errors reported.", s, re.MULTILINE)
        if (r2):
            print("There were no errors reported on " + (i))
        else:
            print("Not all services are working as expected on " + (i))

Я создал библиотеку RF на основе этого поста: Создание библиотеки фреймворка робота из существующего python пакета Однако не ясно, как я могу передать атрибуты своей функции.

1 Ответ

0 голосов
/ 06 февраля 2020

Это должно быть просто: вы импортируете свою функцию / библиотеку в RF, используя Library \the\path\to\your\library\file.py, или добавляете свой файл (или папку) в PYTHONPATH и импортируете класс, который оборачивает функции. Например: Library ValidationLibrary.

Затем в своем тесте вы используете свою функцию в качестве любого другого ключевого слова (см. документацию для других примеров):

Verify Service State      server1      server2     string

или, если есть дополнительные параметры:

Verify Service State      ab11=server1      ab12=server2      s=string
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...