开发者社区> 问答> 正文

如何从机器人框架调用python方法

我需要从机器人框架调用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中使用此方法返回的值。我已经尝试了很多方法,但是没有任何效果。请帮忙。

展开
收起
祖安文状元 2020-02-22 17:47:07 461 0
1 条回答
写回答
取消 提交回答
  • 究竟如何做到这一点你的系统上取决于你的文件是如何组织,如何你已经配置了机器人,但总之,评估从内建库,可以让您从导入的模块任意方法的关键字。

    例:

    对于此示例,我在当前工作目录中创建了一个名为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
    创建关键字库 另一种解决方案是创建您自己的关键字库,以将该函数公开为关键字。

    For example, assuming you can import EnvVar, you could write a library named "Util" (Util.py) that creates a keyword that calls this function:
    
    # Util.py
    import EnvVar
    
    def get_random_emails():
        return EnvVar.getRandomEmails()
    You would then use this in a test like any other keyword library:
    
    *** Settings ***
    Library  Util.py
    
    *** Test Cases ***
    Example
        ${result}=  Get Random Emails
        log  result: ${result}
    
    2020-02-22 17:47:28
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
下一代服务机器人的应用和创新 立即下载
机器人的小脑SLAMWARE - 机器人自主定位导航系统 立即下载
AIOps的核心技术之一:任务机器人如何在金融运维 运营中落地 立即下载