gpt4 book ai didi

Karate 重复 API 调用

转载 作者:行者123 更新时间:2023-12-02 19:57:16 24 4
gpt4 key购买 nike

我们使用 Karate 进行微服务的后端测试。我希望能够对后端 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)

但无法让任何形式的工作。

谁能提供一个例子来说明如何重复相同的 Karate 路线 N 次?我真的在寻找类似的东西:

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

(或功能等效)。

谢谢!

最佳答案

给你。首先,第二个叫.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

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

关于 Karate 重复 API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56796622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com