2017-11-02 3 views
0

私はSoap UIで回帰テストケースを実行するスイートがあります。それは各要求の時間を測定するアサーションCapture Responseを持っています。これは必要に応じて必要です。Groovyを使用しているすべてのテストケースで特定のアサーションを有効または無効にする方法は?

メトリックが必要な場合は、キャプチャ応答時間アサーションを有効にする必要があり、必要がない場合はキャプチャ応答時間は必要ありません。

以下のコードを書いて、無効になっているかどうかを確認しました。それが無効になっている場合は、それ以外の場合は無効にする必要があります。

次のコードは、

のjava.lang.NullPointerExceptionを返します。プロパティ「無効」ヌルオブジェクト上を取得できません。

これについて助けてもらえますか?ステートメントの下

def project = testRunner.getTestCase().getTestSuite().getProject().getWorkspace().getProjectByName("Regression"); 
//Loop through each Test Suite in the project 
    for(suite in project.getTestSuiteList()) 
    { 
     //log.info(suite.name) 
      //Loop through each Test Case 
     if(suite.name == "ReusableComponent") 
     { 
      for(tcase in suite.getTestCaseList()) 
      {    
        log.info(tcase.name) 
        for(tstep in tcase.getTestStepList()) 
        { 
        stepName = tstep.name 
        suiteName=suite.name 
        caseName=tcase.name 
        def testStep = testRunner.testCase.testSuite.project.testSuites["$suiteName"].testCases["$caseName"].getTestStepByName("$stepName") 
        log.info(testStep.getAssertionByName("CaptureResponseTime").disabled) 
        } 

      } 
     } 
    } 
+0

長安を、あなたはそれができますかどうかを確認するために解決策を試す機会を得ましたか? – Rao

+0

試してみて、うまくいきます。 – ChanGan

答えて

3

NullPointerExceptionを引き起こしている:

log.info(testStep.getAssertionByName("CaptureResponseTime").disabled) 

に変更し、その後、NPEを避けるために:あなたはに必要がある場合は、アサーションを無効

log.info(testStep.getAssertionByName("CaptureResponseTime").isDisabled) 

、以下の文を使用してください:

testStep.getAssertionByName("CaptureResponseTime")?.disabled = true 

他の入力は:

projectを得るために、workspaceを使用しないでください。

代わりに使用します。

def project = context.testCase.testSuite.project 
+0

ありがとうRao !.それは働いている.. – ChanGan

関連する問題