使用从一种情况到另一种情况的响应数据

时间:2019-04-30 20:03:13

标签: automated-tests karate

我想通过空手道来模拟一个端到端的测试结构,在其中执行以下操作:

  1. 对特定数据进行GET请求
  2. 将值存储为def变量
  3. 将该信息用于单独的场景

这是我到目前为止所拥有的:

Scenario: Search for asset
    Given url "https://foo.bar.buzz"
    When method get
    Then status 200
    * def responseItem = $.items[0].id // variable initialized from the response
Scenario: Modify asset found
    Given url "https://foo.bar.buzz/" + responseItem
    // making request payload
    When method put.....

我尝试阅读文档以重用信息,但这似乎是为了进行更深入的测试。

有想法吗?

1 个答案:

答案 0 :(得分:1)

强烈建议将这样的流建模为一种情况。请参阅文档:https://github.com/intuit/karate#script-structure

  

在后台使用def设置的变量将在每次   场景。如果您正在寻找一种方法,每次只能做一次   功能,看看callonce。另一方面,如果您是   期望后台中的变量被一种情况修改   这样以后的人才能看到更新后的值-这不是您的方式   应该考虑它们,并且应该将“流”合并为一个   场景。请记住,您应该可以注释掉   场景或跳过某些通过标记而不影响其他标记。注意   并行运行程序将并行运行Scenario-s,这意味着它们   可以按任何顺序运行。

也就是说,您可能正在寻找Background或钩子:https://github.com/intuit/karate#hooks