如何从robot框架调用python方法
我需要从robot框架调用python方法如何从robot框架调用python方法,python,robotframework,Python,Robotframework,我需要从robot框架调用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框架中使用此方法返回的值。我尝试了很多方法,但都不管用。 请提供帮助
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框架中使用此方法返回的值。我尝试了很多方法,但都不管用。
请提供帮助。如果这是您想要添加的唯一方法,那么您可以添加
关键字
装饰器,即:
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
显然,您应该使用Evaluate在设置中作为库导入
具体如何在系统上执行此操作取决于文件的组织方式和配置robot的方式,但简而言之,“来自内置库”是允许您从可导入模块运行任意方法的关键字
例如:
对于本例,我在当前工作目录中创建了一个名为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上(您的设置可能不同),因此我必须告诉robot在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}
EnvVar.py
是否打算成为关键字库?或者,您只是想从模块中选择一个函数来运行吗?该python文件中有许多方法。我只想从EnvVar.py调用一个方法实际上EnvVar.py文件中有许多方法。我只需要使用一个没有参数的方法。