【问题标题】:Karate Repeat API Call空手道重复 API 调用
【发布时间】:2019-06-28 16:49:39
【问题描述】:

我们正在使用空手道对微服务进行后端测试。我希望能够对后端 API 进行 N 次调用,其中 N 可以配置为一个数字,而不必做丑陋的事情。

这是我的第一个方法:

    Given url baseUrl
    And headers HEADERS
    When method get
    Then status 200

    Given url baseUrl
    And headers HEADERS
    When method get
    Then status 200

    Given url baseUrl
    And headers HEADERS
    When method get
    Then status 200

(只是重复调用)它可以工作,但显然不能很好地扩展(想象一下其中的 1000 个)。

下一个方法更好一些 - 我将调用放在一个单独的功能中并使用https://github.com/intuit/karate#data-driven-features 方法:

    * table jwts
      | headers |
      | HEADERS |
      | HEADERS |
      | HEADERS |
      | HEADERS |
      | HEADERS |

    * def result = call read('call-once.feature') jwts

稍微好一点,但仍然无法扩展。我们还尝试了各种karate.repeat(),这似乎是最自然的方法,但语法有问题。我能找到的所有示例都没有在 for-each 中调用 API。

* def callFunction = function (HEADERS) { read('call-putaway-once.feature'); { HEADERS: '#(HEADERS)'} }
* def result = karate.repeat(5, callFunction)

但无法让任何种类的工作。

谁能提供一个示例,说明如何将相同的空手道线重复 N 次?我真的在寻找类似的东西:

for (int i = 0; i < numTimes; i++) {
    Given url baseUrl
    And headers HEADERS
    When method get
    Then status 200
}

(或功能等效)。

谢谢!

【问题讨论】:

    标签: karate


    【解决方案1】:

    给你。一、二called.feature

    @ignore
    Feature:
    
    Scenario:
    Given url 'http://httpbin.org'
    And path 'headers'
    And header X-Karate = count
    When method get
    Then status 200
    

    现在您可以在您的第一个功能中执行此操作:

    * def fun = function(x){ return { count: x } }
    * def data = karate.repeat(5, fun)
    * call read('called.feature') data
    

    附:顺便在自述文件中搜索“polling”,有一个循环调用 API 的示例:polling.feature

    【讨论】:

      【解决方案2】:

      空手道几乎有一个功能可以做到这一点:retry until.

      此功能不会重复“n”次,而是重复直到条件未被验证 此处示例:polling.feature

      对于一个简单的请求,它看起来像:

      Given url baseUrl
      And headers HEADERS
      And retry until responseStatus == 200
      When method get
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-24
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多