Hub*_*bro 1 python robotframework
我正在从事一个变得相当大和复杂的项目。
在我们的机器人测试文件中,我们现在有几个套件设置/拆卸和测试设置/拆卸,用于处理第三方服务的生成模拟服务器、重置配置、覆盖随机值的生成,以便我们的测试输出保持可预测等。
由于每个测试文件都需要进行所有设置/拆卸,因此设置部分中的样板数量变得非常愚蠢。
减少此测试设置样板的“规范”方法是什么?我不能简单地将所有设置/拆卸语句收集到几个关键字中并使用它们,因为测试套件并不都有完全相同的要求。
例如,Robot Framework 中是否有任何方法可以让测试库(特别是 Python)添加安装/拆卸操作?这样我就可以在设置部分设置一些元数据,并让测试库根据需要添加设置/拆卸操作。
例如,我可以添加一个元数据标头,例如Metadata Uses services Twitter, Facebook,然后测试库将处理套件级别的设置/拆卸以生成和终止模拟服务器,以及测试级别的设置/拆卸以清理其状态。
您可以使用库范围。例如,对于SUITE范围,将为每个套件创建一个新实例。
为每个测试套件创建一个新实例。最低级别的测试套件由测试用例文件创建并包含测试用例,拥有自己的实例,而较高级别的测试套件都拥有自己的实例以进行可能的设置和拆卸。
这使您可以控制何时调用构造函数和析构函数。然后是这些,因此库的构造函数和析构函数可以像“设置”和“拆卸”一样起作用。您甚至可以将元数据设置移至构造函数中。
这是使用范围的示例TEST:
from robot.libraries.BuiltIn import BuiltIn
class lib(object):
ROBOT_LIBRARY_SCOPE = 'TEST'
ROBOT_LIBRARY_VERSION = 0.1
def __init__(self, x):
self.x = x
self.test_name = 'setup'
BuiltIn().set_suite_metadata('META', 'value', append=True)
BuiltIn().log_to_console(f'\n init {x}')
def kw(self, test_name):
self.test_name = test_name
BuiltIn().log_to_console(f' keyword {self.test_name} - {self.x}')
def __del__(self):
BuiltIn().log_to_console(f' del {self.test_name}')
globals()[__name__] = lib
Run Code Online (Sandbox Code Playgroud)
测试机器人:
*** Settings ***
Library lib 111
*** Test Cases ***
Test 1
kw ${TESTNAME}
Test 2
kw ${TESTNAME}
Test 3
kw ${TESTNAME}
Run Code Online (Sandbox Code Playgroud)
输出:
Bence:[Robotframework/SO_material]# robot --pythonpath . test.robot
init 111
del setup
==============================================================================
Test
==============================================================================
Test 1
init 111
keyword Test 1 - 111
Test 1 | PASS |
------------------------------------------------------------------------------
del Test 1
Test 2
init 111
keyword Test 2 - 111
Test 2 | PASS |
------------------------------------------------------------------------------
del Test 2
Test 3
init 111
keyword Test 3 - 111
Test 3 | PASS |
------------------------------------------------------------------------------
del Test 3
Test | PASS |
3 critical tests, 3 passed, 0 failed
3 tests total, 3 passed, 0 failed
==============================================================================
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
556 次 |
| 最近记录: |