2016-10-04 3 views
2

私はsoapuiでより多くのテストケースを持つプロジェクトを持っています。各テストケースを実行した後、ステップの結果に応じて2つのhttpリクエストのいずれかを実行する必要があります。したがって、テストケースの1つ以上のステップが失敗した場合は、httprequest1を実行し、すべてのステップが成功した場合は、httprequest2を実行する必要があります。これどうやってするの?私は多くのスクリプトを試しました...今のところ私のベストソリューションはこのようなものですが、テストケースの最後には面白いスクリプトを追加するだけです。問題は最後のステップだけをチェックしていることです。私は他の多くのソリューションを試しましたが、何も私のために働いていませんでした。誰か助けてくれますか?テストケースの結果に応じてSoapUIで指定されたステップを実行する方法

for(r in testRunner.results) 
result = r.status.toString() 
log.info result 

if(result == 'FAILED') 
{ 
testRunner.gotoStepByName('httprequest1') 
testRunner.testCase.testSteps["httprequest2"].setDisabled(true) 
} 
else 
{ 
testRunner.gotoStepByName('httprequest2') 
} 
+0

'httpRequest1'と' httpRequest2'テストステップはどこにありますか?同じテストケースで、あるいは別のケースで、または他の場所で、そのような異なるスイート?追加の 'Groovy Script'ステップの代わりにテストケース' Teardown Script'の一部としてスクリプトを実行することを検討しましたか? – Rao

+0

はい、同じテストケースです。 Teardownスクリプトでこれを解決する方法があれば、別のテストケースに移すこともできます...しかし、私はteardownスクリプトでこれを行う方法を知らないのです。 – vb381

+0

条件付きジャンプステップの使用はどうですか? – Rao

答えて

0

を、それがコメントで言及された、とコメントで共有内容に基づいて、Conditional GoToテスト・ステップを使用することができますように:私は試してみました

def lastResult = testRunner.getResults().last() 
def lastResultStatus = lastResult.getStatus().toString() 

log.info 'Test + lastResultStatus 

if(lastResultStatus == 'FAILED') 
{ 

testRunner.gotoStepByName('httprequest1') 
testRunner.testCase.testSteps["httprequest2"].setDisabled(true) 

} 
else 
{ 
testRunner.gotoStepByName('httprequest2') 
} 

別ソリューションありがとうございます。しかし、それらの複数を必要とするかもしれません。代わりにGroovy Scriptがこのシナリオでは最良の方法です。

ここでは、テストケースのステップを以下に仮定して説明します。

テストケース:

  1. 要求STEP1
  2. 要求STEP2
  3. グルービースクリプトステップ(シナリオを処理するために提案されたスクリプト)
  4. request1ステップSTEP1上方& STEP2は
  5. 成功した場合そうでなければ要求2ステップ
  6. 次のステップx
  7. ステップYここ

以下

  • #3で言及提案Groovy Scriptための擬似コードです。

    • 現在行っているテストステップの実行結果を評価します。
    • 条件に基づいて、テストステップ#4を実行する場合はtrue、それ以外の場合はステップ5を実行します。ここではgotoStepByNameメソッドを使用せず、その名前でstepを実行します。例#15を参照してください
    • 上記のif .. elseが完了したら、gotoStepByNameを使用して、ステップ6、#7(もちろん、あれば)を続行します。

    注:groovyステップでステップを実行するのにgotoStepByNameを使用すると、コントロールが戻ってこない。

  • 0

    すべてのテストケースで行う必要があるため、テストケースティアダウンを使用してステップを呼び出します。あなたがテストケース/スイートと呼ばれている方法の違いをトリガーするSOAPUIランナーを使用する必要が

    if(testRunner.status.toString() == "FAILED"){ 
         testRunner.runTestStepByName("httprequest1") 
         println "in if" 
    }else{ 
        testRunner.runTestStepByName("httprequest2") 
        println "in else" 
    } 
    

    注:ティアダウンスクリプトは次のようになります。

    +0

    詳細が利用できないときは、このコメントにこれを提案してください。後で彼はテストケースの構造と、「Teardown Script」がそこに収まらないように見せてくれました。 – Rao

    +0

    実際、彼のコメントは異なっています。彼の言葉では "しかし、私はティアダウンスクリプトでこれを行う方法を知らない"。また、彼のコードでは、OPはテストステップレベルでそれをやろうとしていますが、彼のソリューションは彼のために働いていません。私はあなたの提案を見ましたが、それは解決策を持っていませんでした。もう一つの側面はトリガーです - 彼はSOAPUIランナーを使用して実行していない限り、ティアダウンスクリプトを起動できません。 – Sid

    +0

    「私はあなたの提案を見ましたが、解決策はありませんでした」 - あなたはどういう意味ですか?疑似命令と一緒にする方法を考えると、単に文を追加するだけです。 – Rao

    関連する問題