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

Automated tests 如何在RobotFramework中将对象变量传递给测试用例?,automated-tests,robotframework,Automated Tests,Robotframework,下面是我基于python的测试(一般)的情况 ============================================================================== ***Settings*** Variables variable_file.py Library library.py ***Test Cases*** A Test Case myTest ${some string} [I

下面是我基于python的测试(一般)的情况

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

Variables       variable_file.py
Library         library.py

***Test Cases***

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

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

最后,我想传递一个在变量文件中定义的实际类对象。我已经四处张望,没有找到传递字符串或列表以外任何内容的方法。有人知道怎么做吗?

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

举一个简单的例子:

${mydict} =  Create Dictionary  a  1  b  2
=>那么您就有了${mydict}={'a':'1','b':'2'}

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

Dictionary Should Contain Key  ${mydict}  a

我正在使用这种方法来测试发送JSON的RESTAPI。我将JSON对象存储在Robot变量中,并通过探索dict的内容来检查结果。我在一篇文章中对此进行了一点解释。

您可以在变量文件中实例化对象变量,如中所述 下面是一个通用示例

变量文件:

#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