Robotframework 不支持直接在 python 中编写测试用例。我已经提交了增强 PR,在这里查看
https://github.com/robotframework/robotframework/issues/3128
但我已经尝试通过将所有测试用例逻辑移动到 python 代码来做到这一点,并使 RF 测试用例成为它们的入口点。
这是一个例子。
我们可以创建一个 python 文件来包含所有测试逻辑和设置/拆卸逻辑,像这样
# *** case0001.py *****
from SchoolClass import SchoolClass
schCla = SchoolClass()
class case0001:
def steps(self):
print('''\n\n***** step 1 **** add school class \n''')
self.ret1 = schCla.add_school_class('grade#1', 'class#1', 60)
assert self.ret1['retcode'] == 0
print('''\n\n***** step 2 **** list school class to check\n''')
ret = schCla.list_school_class(1)
schCla.classlist_should_contain(ret['retlist'],
'grade#1',
'class#1',
60,
self.ret1['id'])
def setup(self):
pass
def teardown(self):
schCla.delete_school_class(self.ret1['id'])
然后我们创建一个机器人文件。其中所有 RF 测试用例都采用相同的形式,并且只是作为上述 python 测试用例的入口点。
喜欢这个
*** Settings ***
Library cases/case0001.py WITH NAME C000001
Library cases/case0002.py WITH NAME C000002
*** Test Cases ***
add class - tc000001
[Setup] C000001.setup
C000001.steps
[Teardown] C000001.teardown
add class - tc000002
[Setup] C000002.setup
C000002.steps
[Teardown] C000002.teardown
您可以看到,通过这种方式,RF 测试用例是相似的。我们甚至可以创建一个工具来通过扫描 Python 测试用例来自动生成它们。