2016-10-20 11 views
1

私はSoapUIにGroovy Scriptを持っています。これは、各TestStepがステップが通過したか失敗したかをログに記録します。私は、Groovy Scriptに何が間違っているのかのアサーションメッセージを記録することを望みます。SoapUI Groovy Script、log.infoテストステップの実行に関する詳細情報。

Thu Oct 20 11:31:06 BST 2016:INFO:TestStep_0051 Passed 
Thu Oct 20 11:31:06 BST 2016:INFO:TestStep_0052 FAILED 
Thu Oct 20 11:31:06 BST 2016:INFO:TestStep_0053 Passed 

私はそれがより詳細に失敗した理由メッセージを表示するために失敗したアサーションをしたいと思います。私はこの出力を得る瞬間

import com.eviware.soapui.model.testsuite.Assertable.AssertionStatus 

def TestCase = testRunner.getTestCase() 
def StepList = TestCase.getTestStepList() 
StepList.each{ 
    // check that testStep has assertionStatus 
    // (for example groovy testSteps hasn't this property since 
    // there is no asserts on its) 
    if(it.metaClass.hasProperty(it,'assertionStatus')){ 
     if(it.assertionStatus == AssertionStatus.FAILED){ 
      log.info "${it.name} FAILED"  

     }else if(it.assertionStatus == AssertionStatus.VALID){ 
      log.info "${it.name} Passed" 
     }else if(it.assertionStatus == AssertionStatus.UNKNOWN){ 
      log.info "${it.name} UNKNOWN (PROBABLY NOT ALREADY EXECUTED)" 
     } 
    } 
} 

。それは失敗TestStep自体、私はメッセージを取得する:私はこのGroovyのスクリプトを実行すると

assert node.toString().matches("(0|175.238|0)\\d*")  | |   |  | |   false   | 132.497286826667   132.497286826667 

はまた、窓はちょうど黒の背景を持っているので、広い私は見つけるように見えるカントそのタイトルは「情報」をポップアップ表示それの右側。誰がこれが何であるか知っていますか?

答えて

2

あなたは私に説明してみましょう、あなたのコードを変更するビットを試すことができます。

代わりのアクセスtestStep結果のための唯一の最終AssertionStatusメタクラスはあなたが問題を避けるために、getAssertionList()を使用してtestStepためのすべての表明にアクセスすることができますがアサーションが含まれていないtestStepsでは、このメソッドがmetaClassを使用して存在することを確認できます。

このリストのアサーションごとに、ステータスを確認できます。失敗した場合は、getErrors()メソッドを使用してエラーメッセージを取得できます。最後に(スクリプトStepListで)最後のインスタンスオブジェクトを返し、SOAPUIがそれを促し、あなたは何も返さないし、迅速な効果を避けるために、return文を追加することができますので、デフォルトのGroovyによって生成されるプロンプトメッセージを回避するために

import com.eviware.soapui.model.testsuite.Assertable.AssertionStatus 

def TestCase = testRunner.getTestCase() 
def StepList = TestCase.getTestStepList() 
StepList.each{ 

    // check that this kind of testStep 
    // can contain assertions (avoid errors with groovy testSteps) 
    if(it.metaClass.respondsTo(it,"getAssertionList")){ 

     def assertions = it?.getAssertionList() 

     assertions?.each{ assertion -> 

      if(assertion?.getStatus() == AssertionStatus.FAILED){ 
       log.info "${it.name} FAILED" 
       assertion?.getErrors()?.each{ error -> 
       log.info "Error message ${error.getMessage()}" 
       } 
      }else if(assertion?.getStatus() == AssertionStatus.VALID){ 
       log.info "${it.name} Passed" 
      }else if(assertion?.getStatus() == AssertionStatus.UNKNOWN){ 
       log.info "${it.name} UNKNOWN (PROBABLY NOT ALREADY EXECUTED)" 
      } 
     } 
    } 
} 
return 
+0

ありがとうございました – Ross

+0

@Rossあなたに役立つ: ')' – albciff

関連する問題