【发布时间】:2021-03-09 11:50:38
【问题描述】:
我创建了一个 testSuit,并且有一些测试步骤。 目标是逐个运行测试步骤,并将状态设置为 OK 或 FAILED,为此我获取 httpStatus 代码并将其设置为 FAILED 或 OK。
这部分看起来不错。问题是,使用我拥有的代码,在 groovy 脚本中,当我单击绿色按钮运行脚本时,它给了我消息:“java.lang.NullPointerException: Cannot invoke method setStatus() on null object error at line 17 ”。并且脚本的颜色保持红色。
但是,如果我点击“测试步骤”,将出现一个小窗口,其中包含测试步骤、groovy 脚本等...如果我右键单击 groovy 脚本并选择“从这里测试”脚本运行,我在脚本中运行的测试步骤会变成绿色或红色,具体取决于它是失败还是通过,而 groovy 脚本会变成蓝色。
所以...我不明白发生了什么...打开“Groovy 脚本”窗口并从那里运行它与打开“测试步骤”窗口并从那里运行脚本有什么区别?
代码:
import com.eviware.soapui.model.testsuite.TestStepResult.TestStepStatus
def example = testRunner.runTestStepByName("example");
def myStep = context.testCase.getTestStepByName("example")
def exampleResult = testRunner.results.find { it.testStep.is(myStep) }
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
def httpResponseHeaders = context.testCase.testSteps["example"].testRequest.response.responseHeaders
def httpStatus = httpResponseHeaders["#status#"]
def httpStatusCode = (httpStatus =~ "[1-5]\\d\\d")[0]
log.info("HTTP status code: " + httpStatusCode)
if (httpStatusCode != "200"){
testRunner.fail("failed");
exampleResult.setStatus(TestStepStatus.FAILED);
} else {
log.info("passed");
exampleResult.setStatus(TestStepStatus.OK);
}
注意:我是色盲,所以不确定 100% 我上面说的绿色是真的绿色还是黄色,而蓝色可能是粉红色...
感谢您的帮助!
【问题讨论】:
标签: groovy soapui test-suite