【问题标题】:How to execute a step depending on a condition from the previous response如何根据先前响应的条件执行步骤
【发布时间】:2019-11-09 09:49:35
【问题描述】:

嘿空手道 DSL 社区 - 我想知道是否有人可以帮助我了解如何根据先前的响应值(条件逻辑)在场景中执行特定的测试步骤。阅读文档后,我发现使用功能文件可以做到这一点,但我也想知道如何在场景中优雅地做到这一点。

我将尝试在下面解释我想要实现的目标。

Given path '/games/list'
When method get
Then status 200
And def response = {"games":[{"gameId":"3431572","gameStatus":"RELEASED","releaseDate":"2018-10-31"}]}
And match response.games == '#[]'

Given path '/games/action'
And request {"game":{"gameId":"3431572","gameStatus":"RELEASED","releaseDate":"2018-10-31"},"gameAction":"DOWNLOAD"}
When method post
Then status 200

如果response.game.gameStatus == 'UNRELEASED' 那么我想解析request.gameAction = 'PREORDER'

else if 如果response.game.gameStatus == 'RELEASED' 那么我想解析request.gameAction = 'DOWNLOAD'

如果您需要更多信息,请告诉我。我相信set 的使用可能在这里与一些javascript函数一起使用?

【问题讨论】:

    标签: karate


    【解决方案1】:

    对我来说听起来很简单:

    * def payload = {}
    * def lookup = { UNRELEASED: 'PREORDER', RELEASED: 'DOWNLOAD' }
    * payload.gameAction = lookup[response.game.gameStatus]
    # ...
    * request payload
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      • 1970-01-01
      • 2018-06-09
      • 2020-01-20
      相关资源
      最近更新 更多