テストでは、エンドポイントを呼び出すための再試行関数を呼び出す機能を使用しています。
以前は正常に機能していましたが、ここ数日で同じコードが機能しなくなりました。
私のコードは:
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
セットアップのようなもの以外は使用しないでください。そうしないと、テストの保守が困難になります。
詳細については、この回答を参照してください:https://stackoverflow.com/a/54126724/143475
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加