Функция повтора для карате не работает - PullRequest
0 голосов
/ 04 марта 2019

Я использовал в своем тесте функцию, которая вызывает функцию повтора для вызова конечной точки.

Раньше она работала нормально, но в последние несколько дней тот же код перестал работать.

мой код:

Feature: Invoke External

Background: 
* configure retry = { count: 5, interval: 5000 }

@parallel=false

Scenario: Invoke gateway

Given url externalGateway

And path domain + '/' + basepath + '/' +  path

And header Authorization = accessTokenforProd

And request 'test'

When method requestMethod

Then retry until responseStatus == externalGatewayResponse

Then print ' response code from Qantas External Gateway: ' , responseStatus

, и я вызываю эту функцию со следующим синтаксисом:

Then def responseFromAuthenticatedExternalWSO2Gateway = call read('classpath:examples/Services/InvokeAuthenticatedProdQantasExternalWSO2Gateway.feature') {'domain': '#(domain)' , 'basepath': '#(basepath)' , 'path': '#(path)' , 'externalGatewayResponse': '#(externalGatewayResponse)' , 'method': '#(requestMethod)' , 'accessTokenforSandbox': '#(accessTokenforSandbox)' }

Then match responseFromAuthenticatedExternalWSO2Gateway.responseStatus == 200

Есть ли какие-либо проблемы с синтаксисом?Если нет, то внесли ли мы какие-либо изменения, которые могут повлиять на работу функции повтора?

1 Ответ

0 голосов
/ 04 марта 2019

Пожалуйста, прочитайте документы: https://github.com/intuit/karate#retry-until

Вы ошиблись, часть retry until должна быть перед шагом method.

Вкл.соответствующее примечание - особенно когда я вижу requestMethod в качестве переменной - я чувствую, что вы чрезмерно спроектировали свои тесты, против которых я настоятельно рекомендую.Избегайте использования call, за исключением настроек типа, иначе у вас будут сложные тесты.

Подробности см. В этом ответе: https://stackoverflow.com/a/54126724/143475

...