空手道 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' 代码移动到一个单独的功能中,但这是正确的做法,因为您通常也希望它可以被多个功能文件重复使用。
我 运行 在尝试执行以下操作时陷入这种情况(类似于
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' 代码移动到一个单独的功能中,但这是正确的做法,因为您通常也希望它可以被多个功能文件重复使用。