我正在使用robot框架测试REST API,因此我必须创建许多临时资源(测试用户或任何其他资源)。这些都是在关键字中抽象的,但我需要在每次测试后清理它们。但我不想担心在每个测试中显式地清理它,因为它需要我们的测试用例在不同的抽象级别上“播放”。
最好是在测试用例完成后运行关键字teardown,而不是直接在关键字完成之后运行。
我做了一些研究,但还没有找到一个好的方法来处理这个问题。
有没有什么解决方案可以清理在测试用例末尾的关键字中创建的资源,而不是在测试用例中显式地执行该操作?
下面是一个代码示例来说明这种情况:
helper.robot
*** Keywords ***
a user exists
create a user
Delete user
actually remove the usertest.robot资源helper.robot
*** Test Cases ***
test user can login
Given a user exists
When user login
Then it succeeds
[Teardown] Delete user我想要的是将teardown移出测试用例,以便在每个测试用例之后删除用户,但不指定是否在每个测试用例中删除用户。我不想在设置级别配置确切的teardown,因为我们并不总是对所有测试用例使用相同的资源。
发布于 2020-12-05 22:42:55
在编写本文时,唯一的特殊标记是
:exit,它会在优雅地停止测试执行时自动添加到测试中,以及robot:no- dry - run,它可以用来禁用dry运行模式。将来可能会添加更多的用法。2.2.6测试设置和拆卸
Robot Framework具有与许多其他测试自动化框架类似的测试设置和拆卸功能。简而言之,测试设置是在测试用例之前执行的,而测试拆卸是在测试用例之后执行的。在Robot Framework中,setup和teardown只是带有可能参数的普通关键字。
Setup和teardown总是一个关键字。如果他们需要处理多个单独的任务,则可以为此创建更高级别的用户关键字。另一种解决方案是使用BuiltIn关键字Run关键字执行多个关键字。
测试拆卸有两个方面的特殊之处。首先,它还会在测试用例失败时执行,因此它可以用于清理活动,而不管测试用例的状态如何。此外,teardown中的所有关键字也会执行,即使其中一个失败。这个在失败时继续的功能也可以与normal关键字一起使用,但inside teardowns默认情况下是打开的。
为测试用例文件中的测试用例指定设置或拆卸的最简单方法是使用设置表中的测试设置和测试拆卸设置。单独的测试用例也可以有自己的设置或拆卸。它们使用测试用例表格中的Setup或Teardown设置进行定义,并覆盖可能的test Setup和Test Teardown设置。在Setup或teardown设置后没有关键字意味着没有setup或Teardown。也可以使用值NONE来指示测试没有设置/拆卸。
*** Settings ***
Test Setup Open Application App A
Test Teardown Close Application
*** Test Cases ***
Default values
[Documentation] Setup and teardown from setting table
Do Something
Overridden setup
[Documentation] Own setup, teardown from setting table
[Setup] Open Application App B
Do Something
No teardown
[Documentation] Default setup, no teardown at all
Do Something
[Teardown]
No teardown 2
[Documentation] Setup and teardown can be disabled also with special value NONE
Do Something
[Teardown] NONE
Using variables
[Documentation] Setup and teardown specified using variables
[Setup] ${SETUP}
Do Something
[Teardown] ${TEARDOWN}如果您在设置中提供它,它将按您所需的方式工作,而不必为每个测试用例指定
https://stackoverflow.com/questions/65150823
复制相似问题