Как вызвать метод python из фреймворка робота - PullRequest
0 голосов
/ 10 мая 2019

Мне нужно вызвать метод python из фреймворка робота.

def getRandomEmails():
    a = ''.join(random.choice(string.ascii_lowercase + string.digits) for i in range(16))
    email = a + '@' + 'gmail.com'
    return email

Эта функция записана в файле EnvVar.py. Как использовать возвращенное значение этого метода в Robot Framework.Я перепробовал почти много способов, но ничего не работает.пожалуйста, помогите.

Ответы [ 2 ]

3 голосов
/ 10 мая 2019

Использование Evaluate

Как именно это сделать в вашей системе, зависит от того, как организованы ваши файлы и как вы настроили робота, но вкратце, Evaluate из библиотеки BuiltInключевое слово, которое позволяет запускать произвольные методы из импортируемых модулей.

Пример:

Для этого примера я создал файл с именем EnvVar.py в текущем рабочем каталоге.Он имеет следующее содержимое:

import random, string

def getRandomEmails():
    a = ''.join(random.choice(string.ascii_lowercase + string.digits) for i in range(16))
    email = a + '@' + 'gmail.com'
    return email

Затем я создал файл с именем "example.robot", который выглядит следующим образом:

*** Test cases ***
Example
    ${result}=  evaluate  EnvVar.getRandomEmails()  modules=EnvVar
    log  result: ${result}

Поскольку текущий рабочий каталог не по умолчаниюна моем PYTHONPATH (ваши настройки могут отличаться), я должен сказать роботу включить текущий каталог на PYTHONPATH.Я могу сделать это с помощью опции --pythonpath.

$ robot --pythonpath . example.robot  

Создание библиотеки ключевых слов

Другим решением является создание собственной библиотеки ключевых слов, которая предоставляет эту функцию в качестве ключевого слова.

Например, предполагая, что вы можете импортировать EnvVar, вы можете написать библиотеку с именем «Util» (Util.py), которая создает ключевое слово, которое вызывает эту функцию:

# Util.py
import EnvVar

def get_random_emails():
    return EnvVar.getRandomEmails()

Затем вы будете использовать это втест, как и любая другая библиотека ключевых слов:

*** Settings ***
Library  Util.py

*** Test Cases ***
Example
    ${result}=  Get Random Emails
    log  result: ${result}
2 голосов
/ 10 мая 2019

Если это единственный метод, который вы хотите добавить, чем вы можете добавить keyword декоратор, то есть:

from robot.api.deco import keyword

@keyword
def getRandomEmails():
    a = ''.join(random.choice(string.ascii_lowercase + string.digits) for i in range(16))
    email = a + '@' + 'gmail.com'
    return email

И, очевидно, вы должны импортировать в настройках как библиотека

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