空手道 dsl 的重试功能不起作用
Retry function for karate dsl is not working
我一直在测试中使用一个功能,它调用重试函数来调用端点。
它以前工作得很好,但最近几天同样的代码停止工作了。
我的代码是:
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
语法有问题吗?如果没有,那么我们是否进行了任何可能影响重试功能的更改?
请阅读文档:https://github.com/intuit/karate#retry-until
你弄错了,retry until
部分应该在 之前 method
步骤。
相关说明 - 特别是当我将 requestMethod
视为变量时 - 我觉得你过度设计了你的测试,我强烈建议不要这样做。避免使用 call
除了设置类的东西 - 否则你最终将难以维护测试。
有关详细信息,请参阅此答案:
我一直在测试中使用一个功能,它调用重试函数来调用端点。
它以前工作得很好,但最近几天同样的代码停止工作了。
我的代码是:
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
语法有问题吗?如果没有,那么我们是否进行了任何可能影响重试功能的更改?
请阅读文档:https://github.com/intuit/karate#retry-until
你弄错了,retry until
部分应该在 之前 method
步骤。
相关说明 - 特别是当我将 requestMethod
视为变量时 - 我觉得你过度设计了你的测试,我强烈建议不要这样做。避免使用 call
除了设置类的东西 - 否则你最终将难以维护测试。
有关详细信息,请参阅此答案: