代码之家  ›  专栏  ›  技术社区  ›  ChanGan

如何使用Groovy在所有测试用例中启用/禁用特定断言?

  •  0
  • ChanGan  · 技术社区  · 7 年前

    我有一套在Soap UI中运行回归测试用例的套件。它有一个断言 Capture Response 它测量每个请求的时间。这是需要的。

    我写了下面的代码来检查它是否被禁用。如果它被禁用,那么好,否则我需要禁用它。

    以下代码返回

    Java语言lang.NullPointerException:无法获取null对象的属性“disabled”。

    有人能帮忙吗?

    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)
                      }
    
                }
            }
        }
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   Rao CrashOverload    7 年前

    以下陈述导致 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