机器人框架 - 来自谷歌文档的示例不起作用

时间:2013-10-31 06:18:06

标签: java python jython robotium robotframework

我刚刚开始研究Robot框架(刚开始学习Python ......)。每当我尝试从谷歌文档运行一些代码示例时,它会抛出各种错误。现在,我为我的无知而道歉,我想知道我哪里出错了。 例如: 我从谷歌代码中复制此代码,但它不起作用。

:FOR    ${var}  IN  @{VALUES}
Continue For Loop If    '${var}' == 'CONTINUE'  

我的值/ var变量应包含什么才能使其工作。它总是抛出“不是关键字异常”。我没有安装Jython BTW。我必须安装吗?

另外,我如何使用“CALL METHOD”关键字。

Call Method ${hashtable} isEmpty

不起作用。即使我将hashtable初始化为某个val或将其设置为none也是如此。

编辑:

TC 01
     FOR    ${item} IN  @{list}
       Log  ${item}

我正在尝试运行上面的代码。我已经定义了列表和项目(我认为声明项目作为变量是不必要的,如果我错了,请纠正我)。现在当我尝试运行此代码时,我得到'For'是一个保留关键字错误。如果我尝试在LOG或FOR之前插入'\',它会说 - “没有KeyWord WITH name'\ FOR'FOUND。” 。我究竟做错了什么??

1 个答案:

答案 0 :(得分:2)

使用Robot Framework,您不需要Jython,它只是一个选项。 Python就是你所需要的。

你的for循环无效,应该是这样的:

*** Variables ***
@{list}           foo    bar    lorem    ipsum    dolor    sit    amet

*** Test Cases ***
Example
    : FOR    ${item}    IN    @{list}
    \    Log    ${item}

如果您将其保存为example.txt并在同一目录中运行pybot example.txt,则会单独传递并记录list的所有项目。

为了使用Call Method,你需要有一些方法来调用方法。因此,您必须拥有一个python文件,该文件具有类,函数并将该类实例化并分配给变量。像这样:

class MyObject:
    def __init__(self):
        self.args = None
    def my_method(self, *args):
        self.args = args

obj = MyObject()

并将其保存到vars.py(与example.txt相同的目录),然后将其保存到example.txt

*** Settings ***
Variables         vars.py

*** Variables ***
@{list}           foo    bar    lorem    ipsum    dolor    sit    amet

*** Test Cases ***
Example
    : FOR    ${item}    IN    @{list}
    \    Log    ${item}

Example2
    Call Method    ${obj}    my_method
    Should Be True    ${obj.args} == ()
    Call Method    ${obj}    my_method    arg
    Should Be True    ${obj.args} == ('arg',)
    Call Method    ${obj}    my_method     a1     a2
    Should Be True    ${obj.args} == ('a1','a2')

但我的猜测是你此时并不想真正使用Call Method