2017-10-17 29 views
1

testCaseの実行に奇妙な問題があります。正しいテストケースの実行で「失敗」ステータスが返される

Setup script: 

    set session_id = 0 

    set session_index = 0 

    store custom properties in an external file 

とテストケース本体

Test Case: 

    data source 

    SOAP - authentication on components (gives session_id for each component) 

    groovy - recover useful data (store session_id in custom prop session_id_<session_index>) 

    source loop 

    SOAP - start asynchronous service on component 1 

    SOAP - check status on component 1 

    goto 'check status' while status = Pending 

    SOAP - check status on component 2 

    goto 'disconnect terminals' is session_id = 0 

    SOAP disconnect 

    groovy disconnect terminal : loop for each session_index: set session_id = session_id_<session_index> and use it in the SOAP disconnect step (I use run test step) 

ティアダウンスクリプト:

は、私は次のような構造を持つテストケースを持つカスタムプロパティこれらのステップのすべてがで実行

復元します成功、私はエラーが記録されていないが、全体的なテストはFAILEDステータスを持っています。

問題がgotoのステップから発生していることがわかりました。 返されたステータスが '保留中'に設定されている間、ステータスを確認するためにSOAPリクエストにループバックしています。だから、リクエストが '保留中'を返すたびに失敗し、私は再度チェックリクエストを送信します。 最終的にステータスが「成功」になると、testStepは緑色(OK)になり、testCaseは続行します。

全体的な結果では、複数回再生されるtestStepは、各反復ごとに1回保存され、最後のオカレンスに対してのみOKです。したがって、全体のテストステータスはFAILEDです。

答えて

1

は、この問題の回避策はあり:

は、私がテスト結果を確認し、確認しているtestRunner.resultsに失敗したとみなさ私のテスト手順の一部。そうするために、私は私のティアダウンスクリプト]タブで

for (testStep in testRunner.getResults()){ 
    log.info "status " + testStep.getTestStep().getName() + " : " + testStep.getStatus() 
} 

を次のコードビットを設定し、これらの手順は、私が「保留中」から異なるステータスを待って、ループされたものでした。 testStepのいくつかのオカレンスが「失敗」していても、状態が最終的に「成功」​​だったため、テストケースでOKと設定されました(紛らわしい)

for (results in testRunner.results){ 
// implement a selection condition 
    results.status = "OK" 
} 

私はちょうど私が唯一の心配testStepsにこれを適用することを確認する必要があります:

は、だから、私は心配手順については、次の操作を行って、それらのステータスを更新することができました。

しかし、最後に全体的なステータスは、まだ、FAILEDまだ私のティアダウンスクリプトにされています。私は私の手順と結果の確信している場合は、次のよう

log.info "TEST RUNNER STATUS after update" + testRunner.getStatus() 

、私はそれを上書きすることができます。

testRunner.status = "FINISHED" 
log.info "TEST RUNNER STATUS after update" + testRunner.getStatus 

そして、私の全体的なテストでは、私はそれは少しトリッキーだが、知っている限り、私はそれらのパラメータを更新するための適切な条件を設定して、私は本当の失敗を隠すことはないと確信している(緑色のバー)

okです。

誰かがこれを行うためのよりクリーンな方法を持っているなら、私は感謝します

関連する問題