Java RestAssured Cucumber - 在同一场景之间共享变量值 class

Java RestAssured Cucumber - sharing variable value between scenarios in the same class

我已经编写了一些 Rest Assured Cucumber 测试来测试我的 API。我写了 cucumber feature/step 定义文件,执行以下操作:-

添加新类别 更新类别 删除类别。

所以我有一个包含三个场景的单步定义 class。

第一个场景创建一个新类别,我将类别 ID 存储在一个全局范围变量中(该变量在 class 文件的顶部声明)。我将变量写入控制台,以确保它在删除新类别后具有值(确实如此)。场景结束后,它会转到场景 2,尝试更新类别。问题是全局变量的值现在已经变为空,测试失败。

有谁知道是否可以在同一步骤定义 class 文件中在不同场景之间共享全局变量的内容?

在场景之间共享信息是有意为之的。每个场景都是自己的小实验,不应受他人影响。

现在,如果您习惯于编写手动测试脚本,您可能会认为重用东西是有效的。它是。但是计算机要快得多,因此您不必非常高效。而是因为从头开始做所有事情的成本很低,所以效率低下是值得的,可以减少测试意外交互的机会。

所以宁愿考虑写三个不同的场景:

Scenario: Create
  Given the things needed to make a category
  When a new category is created
  Then it has all the things used to make it

Scenario: Update
  Given a category with some property
  When the property of the category is changed
  Then fetching the category again shows the updated 
property


Scenario: Delete
  Given a category
  When the category is deleted
  Then the category is not found when fetched

第二个和第三个在给定步骤中创建类别。

现在,如果这是一个在测试后未关闭的系统 运行,您可能还想使用 after hooks 来尝试删除测试完成后创建的任何类别。