繁体   English   中英

机器人框架 - 无法调用 Python function

[英]Robot Framework - Not able to call Python function

我有一个 Python 脚本,与我的机器人框架脚本位于同一目录。 我想使用机器人框架将 python 脚本中的 function 的结果登录到控制台。

我的 Python 脚本(称为 raw_data.py):

from random import random

class raw_data:

    def return_random_number(self):
        result = random()
        return result

raw_data = raw_data()
number = raw_data.return_random_number()
print(number)

我的 RobotFramework 在同一目录中:

*** Settings ***
Library     DatabaseLibrary
Library     OperatingSystem
Library     raw_data.py

Suite Setup         Connect To Database       pymysql  ${DBName}   ${DBUser}   ${DBPass}   ${DBHost}   ${DBPort}
Suite Teardown      Disconnect From Database

*** Variables ***
${DBName}   #
${DBUser}   #
${DBPass}   #
${DBHost}   #
${DBPort}   #

Print random number
    ${result}=     evaluate  return_random_number()
    log  result: ${result}

但是当我运行我的 RobotFramework 脚本时,我得到:

Print random number                                 | FAIL |
Evaluating expression 'return_random_number()' failed: NameError: name 'return_random_number' is not defined nor importable as module

好吧,你真的只需要阅读错误信息:

'return_random_number' is not defined nor importable as module

但问题是如何从这里 go 。

首先,最好从阅读官方文档开始,特别是如何创建自定义库并在您的 RF 文件中使用此类关键字。

这样做之后,你会发现几个问题:

  • 自定义库有一定的scope ,所以你应该把它写在那里(根据你的情况选择合适的,我不知道你需要哪个 scope ,所以我会随机选择一个):
from random import random

class RawData:

    ROBOT_LIBRARY_SCOPE = 'TEST CASE'

    def return_random_number(self):
        return random()
  • 您的 Python 模块/库不会作为独立的 Python 脚本执行,因此您可以删除最后 3 行:
raw_data = raw_data()
number = raw_data.return_random_number()
print(number)

因此,您的自定义库应如下所示:

原始数据.py

from random import random

class RawData:

    ROBOT_LIBRARY_SCOPE = 'TEST CASE'
    ROBOT_LIBRARY_VERSION = 1.0

    def return_random_number(self):
        return random()

您还可以添加库版本 推荐,这是一个很好的做法。

现在,您想在 RF 中导入您的库:

*** Settings ***
Library     RawData.py

我不知道你为什么叫它RawData实际上它返回一个随机数。 考虑使用专有名称。

然后你想调用你的自定义关键字。 在自定义库中创建的自定义关键字可以通过简单地键入不带下划线的 Python 方法的名称来调用,因此您不需要任何Evaluate关键字,您可以像这样调用您的自定义关键字:

${result}=    Return Random Number

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM