如何从python类调用方法到robot类
我在python文件中有一个方法,它返回一个值lilkeURL。 我想在robot框架中调用它,通过附加环境来启动测试用例。 下面是我使用的代码 python和robot文件代码。请让我知道我哪里做错了。 我正在尝试从python文件调用方法,该文件将url返回到robot框架类中如何从python类调用方法到robot类,python,robotframework,Python,Robotframework,我在python文件中有一个方法,它返回一个值lilkeURL。 我想在robot框架中调用它,通过附加环境来启动测试用例。 下面是我使用的代码 python和robot文件代码。请让我知道我哪里做错了。 我正在尝试从python文件调用方法,该文件将url返回到robot框架类中 Environment.py class TestUrl: def getBaseUrl(self, env): if env == 'int': domain = 'example.c
Environment.py
class TestUrl:
def getBaseUrl(self, env):
if env == 'int':
domain = 'example.com/'
return domain
def getFullUrlForEclaimsHome(self, env, partner):
x = self.getBaseUrl(env)
url = 'https://' + partner + x
print url
return 'https://' + partner + x
test.robot
*** Settings ***
Variables ../../CommonTestClass/Environments.py
*** Variables ***
${browser} chrome
${env} int
${partner} example
${example URL} = call method getFullUrlForEclaimsHome('${env}','${partner}')
*** Keywords ***
Launch the browser
sleep 2s
Open Browser ${example URL} ${browser}
Maximize Browser Window
文件名和类名(根据我的经验)应该匹配,因此,如果文件名为“Environments.py”,那么您的类应该称为“Environments”,因为一旦在robot框架中导入它,您将直接调用方法“getBaseUrl”或“GetFullUrlForeclaimHome” 另外,您的类定义中缺少()
class TestUrl():
例如:
我的Python文件名为:Tree.py
from anytree import Node, RenderTree
class Tree ():
def generate_tree (self,db_server,db_table,db_username, db_password):
DO_SOMETHING
def retrieve_tree_info (self,db_server,db_table,db_username, db_password, tree_ID):
DO_SOMETHING
return (SOMETHING)
我的机器人框架文件:
*** Settings ***
Library YOUR_LIBRARY
Resource YOUR_RESOURCE
Library ../External Library/Tree.py #PATH TO YOUR Tree.py FILE
#NOTE: If you use some IDLE (I'm using RED) it give you suggestion about the method name, in my example the IDLE call it in a bit different way than it was called in the python file
*** Variables ***
YOUR_VARIABLE
*** Test Cases ***
Create tree
DO_SOMETHING
${tree}= Retrieve Tree Info ${db_server} ${db_name} ${db_user} ${db_password} ${tree_ID}
DO_SOMETHING
Verify Locations tree
DO_SOMETHING
${tree}= Retrieve Tree Info ${db_server} ${db_name} ${db_user} ${db_password}
DO_SOMETHING
您有一个名为
Environment.py
(singlular)的文件和一个尝试使用名为Environments.py
(复数)的文件的robot测试。可能还有其他问题,但这肯定是一个问题。如果类名和模块名匹配,则不必在库导入中指定前者,没错-。顺便说一句,类定义中的括号只有在子类化时才需要:)哦,我不知道括号,所以为了避免错误,我一直在放:S tk作为提示;)@Carlo1585r您能举个例子说明我如何在robot类中调用“GetFullUrlForeclaimHome”并将其设置为variable@Mahantesh答案中添加了示例