[英]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 文件中使用此类关键字。
这样做之后,你会发现几个问题:
from random import random
class RawData:
ROBOT_LIBRARY_SCOPE = 'TEST CASE'
def return_random_number(self):
return random()
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.