Zei*_*zar 11 python testing robotframework
假设我在python中有一个类:
class TestClass(object):
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
def print_args(self):
print arg1, arg2
Run Code Online (Sandbox Code Playgroud)
我想用来robotframework实现我的测试场景.我想从上面的类创建一个实例并调用它的方法.怎么做?我知道如何导入lib; 它应该是这样的:
Library TestClass
Run Code Online (Sandbox Code Playgroud)
我不知道如何从这个类初始化一个对象,并通过这个对象调用类方法.如果我想用python实现它,我会写一些像这样的代码:
import TestClass
test = TestClass('ARG1', 'ARG2')
test.print_args()
Run Code Online (Sandbox Code Playgroud)
现在,我想知道如何写这个robotframework.有帮助吗?
Lau*_*iel 16
要使用参数导入库,只需在库名称后添加它们:
Library TestClass ARG1 ARG2
Run Code Online (Sandbox Code Playgroud)
因此,"导入"和实例化一次完成.现在,可能棘手的是了解实例的范围.用户指南" 测试库范围 " 部分对此进行了详细说明:
为每个测试用例创建一个新实例.[...]这是默认值.
需要注意的是,如果你想使用不同的参数导入相同的库几次,因此对你的类的实例差别,你就会有他们的名字上输入:
Library TestClass ARG1 ARG2 WITH NAME First_lib
Library TestClass ARG3 ARG4 WITH NAME Second_lib
Run Code Online (Sandbox Code Playgroud)
然后在测试中,您必须为关键字添加前缀:
*** Test Cases ***
MyTest
First_lib.mykeyword foo bar
Second_lib.mykeyword john doe
Run Code Online (Sandbox Code Playgroud)
这是在说明用户指南的这一部分.
小智 5
我已经能够按需实例化 python 类(即不仅仅是通过库技术进行硬编码的参数)。
我使用了一个辅助方法来创建这个类。我无法让 Robot 脚本直接调用类构造函数,但是它可以在 Python 中调用函数,因此我们可以通过提供基于函数的接口来创建类或命名元组:
文件:resource_MakeMyClass.robot
*** Settings ***
Library myClass
*** Keywords ***
_MakeMyClass
[Arguments] ${arg1} ${arg2}
${result} = makeMyClass ${arg1} ${arg2}
[Return] ${result}
Run Code Online (Sandbox Code Playgroud)
文件:myClass.py
class MyClass(object):
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
def makeMyClass(arg1, arg2):
return MyClass(arg1, arg2)
Run Code Online (Sandbox Code Playgroud)