Я создаю животное в базе данных, а затем пытаюсь извлечь животное, которое я только что создал. Тем не менее, в базе данных есть временная задержка ~ 5-10 сек. Поэтому ожидание в режиме ожидания не подходит для этого сценария, так как время отклика варьируется.
Я бы хотел опросить сообщение, пока в массиве не будет возвращен animalId. Также важно, чтобы заголовок requestId повторно генерировался при повторной попытке запроса.
Какой самый элегантный способ добиться этого?
Сценарий:
Given path '/animals'
And header requestId = uniqueString(5)
When method post
Then status 200
* def animalId = response.animalId
Given path '/animals'
And header requestId = uniqueString(5)
When method get
Then status 200
{
"animals": [
{
"animalId": "12219958",
"reference": [
"12345"
]
}
]
}
* def animalDetails = karate.jsonPath (response, "$.animals.[?(@.reference[0]== '" + animalId + "' )]")[0]
* def animalId = '12345'