Как создать динамический компонент пути c в сочетании с повтором до - PullRequest
1 голос
/ 01 февраля 2020

У меня есть сценарий использования, когда мне нужно сначала вызвать API, чтобы получить список идентификаторов. Из этого ответа выбирается случайный идентификатор. Затем я вызываю второй API, который использует случайный идентификатор в качестве компонента пути.

Возможно, второй вызов API может вернуть пустой ответ, поэтому я хочу использовать retry until, но использовать другой случайный идентификатор в пути за повторение итерации.

Я пробовал пару вещей:

Сначала "вставляем" функцию JS в пути, чтобы получить случайный идентификатор:

Given path firstPart, myGetRandomId(idList), lastPart
And retry until response.length > 1

Во-вторых, попытался поместить функцию JS в Examples: как часть Scenario Outline:

Given path firstPart, <ID>, lastPart
And retry until response.length > 1
Examples:
  | ID |
  | myGetRandomId(idList) |

Общая проблема, которую я не могу понять, это как получить JS функция для оценки любого из этих «встроенных» подходов.

И идеи / предложения приветствуются.

1 Ответ

0 голосов
/ 01 февраля 2020

Способ, которым работает Каратэ retry until, заключается в том, что он повторно воспроизведет запрос как есть , и вы не сможете его изменить.

Так что вам нужно взять другой подход. Используйте JS l oop. Посмотрите на этот пример в демонстрациях:

https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/demo/polling/polling.feature

...