如何在RobotFramework中将对象变量传递给测试用例?

时间:2013-06-18 21:09:31

标签: automated-tests robotframework

这是基于python的测试(通常)正在发生的事情。

==============================================================================
***Settings***

Variables       variable_file.py
Library         library.py

***Test Cases***

A Test Case
      myTest      ${some string}       [I want to pass an object here]

=============================================================================

最后,我想传递一个在我的变量文件中定义的实际类对象。我看起来很远,没有找到超越字符串或列表的方式。有谁知道怎么做?

2 个答案:

答案 0 :(得分:2)

默认情况下,$ {variable}是字符串,但它也可以包含对象。 并且您可以将其作为参数传递给关键字。

举一个简单的例子:

${mydict} =  Create Dictionary  a  1  b  2

=>然后你有$ {mydict} = {'a':'1','b':'2'}

然后您可以使用对象作为参数调用关键字。例如:

Dictionary Should Contain Key  ${mydict}  a

我正在使用这种方法来测试向我发送JSON的REST API。我将JSON对象存储在Robot变量中,并通过浏览dict的内容来检查结果。我在blog post中解释了一下。

答案 1 :(得分:1)

您可以按照User guide中的说明在变量文件中实例化对象变量 这是一个通用的例子

变量文件:

#var_file.py:
class foo(object):
    a = "foo"
    b = "bar"

MY_VAR = foo()
MY_SECOND_VAR = foo

测试用例文件:

#var_file.txt
*** Test cases ***
log variables
    log    ${MY VAR.a}
    log    ${MY VAR.b}

执行使用:

pybot -V var_file.py var_file.txt