Мы используем каратэ для внутреннего тестирования микросервиса.Я хотел бы иметь возможность делать N обращений к бэкэнд-API, где 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()
, которые кажутся наиболее естественным подходом, но имели проблемы с синтаксисом.Ни в одном из примеров, которые я смог найти, не было вызова API внутри for-each.
* 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
}
(или функционально эквивалентный).
Спасибо!