空手道 API 测试 - 在功能文件中跨场景访问变量值

Karate API Testing - Access variable value across scenario in a feature file

我 运行 在尝试执行以下操作时陷入这种情况(类似于 ):

Scenario: Create User
Given path 'user'
    And request read('user.json');
    When method post
    Then status 200
    And def user_id = response.userId

Scenario: Test A
   Given path 'user/' + user_id <- Received javascript error here
   ...

Scenario: Test B
   Given path 'user/' + user_id <- Received javascript error here
   ...

Scenario: Test A
   Given path 'user/' + user_id <- Received javascript error here
   ...

基本上我想做的是先在我的数据库中创建一个用户,然后 运行 通过一系列测试并使用最后一个方案删除该用户。因此,我需要在多个场景中共享 user_id 值。背景对我不起作用,因为这意味着我必须为每个场景创建一个新用户。我在演示中看到,一种简单的方法是将所有测试都放在 1 个场景下,但我认为将所有测试放在 1 个场景下是不对的

我已经查看了空手道演示,但我没有遇到任何有助于我的情况的示例代码。我可以知道在空手道中执行此操作的正确方法吗?谢谢

我认为你错过了 callonce keyword. Understand it and then look at the demos, for example, this one: callonce.feature

您需要将 'common' 代码移动到一个单独的功能中,但这是正确的做法,因为您通常也希望它可以被多个功能文件重复使用。