在没有拆卸脚本的模块化框架中执行当前测试用例最后一步中的 groovy 代码

Execute groovy code in last step of current test case in modular framework without teardown script

我有一个模块化的 soapui 框架。这意味着我可以根据组织到不同套件中的业务操作来执行测试用例。考虑到这一点,我将需要来自其他测试用例的数据以用于我当前的测试用例(在不同的套件中)。为此,我在当前测试用例中使用 运行 TestCase 步骤,该步骤 运行 是套件 1 中的测试用例,并通过项目属性将所需数据引入我当前的测试用例(套件 2)。在我运行当前测试用例之后,我需要清除项目属性。我有 groovy 代码可以做到这一点。问题是:由于这是模块化的,我只需要在当前测试用例为 运行 后清除项目属性。在测试用例级别使用拆卸脚本是行不通的,因为即使这不是当前测试用例 运行,它也会始终清除项目属性。意思是,我当前的套件是套件 2。套件 2 中的所有测试用例都有一个删除项目属性的拆卸脚本。当我 运行 套件 3 中的测试用例,并且需要套件 2 中测试用例的数据时,由于套件 2 中的拆卸脚本(在测试用例级别),属性将不存在。同样,我只需要在当前测试用例的最后一步是 运行 时清除它,但在进行模块化执行时不会影响任何其他测试用例。我希望这是有道理的。

附带说明一下,此框架允许我按套件测试业务操作以进行临时测试。它还允许我 运行 从头到尾进行完整的回归(连续测试所有套件)。我需要的解决方案也不会破坏完整的回归 运行。

关于如何做到这一点有什么想法吗?

为了做到这一点,我必须在每个级别创建一个设置和拆卸脚本:项目、套件和测试用例。

在设置脚本中,我创建了一个名为 Is_Running 的变量。然后我创建一个 if 语句,它说:如果“Is_Running”为 NULL,则用当前正在执行的项目、套件或测试用例的名称填充该变量。例如,如果我在项目级别执行,此代码首先检查容器 Is_running 中是否有任何内容,如果没有,则将项目名称写入该变量。

然后我在每个关卡中使用拆解脚本,它说如果 Is_Running 变量等于我正在 运行ning 的任何关卡的当前名称,然后擦除项目属性.这确保项目属性仅在当前级别完成执行后才被删除,而不是在测试中间(使用其他套件时)。

例如:如果我在套件级别开始测试,并选择 运行“Suite3”,安装脚本将在 Is_Running 变量中写入“Suite3”。一旦 Suite3 让 Suite2 参与 运行 所需的测试用例,Suite2 的设置脚本会发现 Is_Running 变量不为空,因此它不会将其名称写入 Is_Running 容器。因此,Suite2 拆卸脚本不会删除项目属性,因为名称不匹配。 Suite3 完成所有测试步骤后,拆解脚本会发现 Is_Running 已填充 Suite3,因此它会删除项目属性。

这种方法允许我在任何级别 运行 项目,并且仅在当前套件完成 运行ning 后才能删除项目属性。我需要足够了解 groovy 才能完成上述所有工作,但这种方法正是我在这个问题中寻找的。如果你知道更简单的方法,请给我留言!