尝试添加 xpath 断言时 groovy 脚本出错

Error in groovy script while trying to add xpath assertion

我在尝试执行以下代码时遇到异常:

missing property exception

groovy 脚本中用于将 xpath 断言添加到测试用例中的代码。

请问有什么解决方法可以解决这个错误吗?

测试套件名称为 "ManagePostpayInsurance_1_0",测试步骤名称为 "getInsuranceDetails_1_FTC_005"。

log.info("Testing Start")
TSName = "ManagePostpayInsurance_1_0"
StepName = "getInsuranceDetails_1_FTC_005"
project.getTestSuiteList().each {
    if(it.name == TSName) {
        TS = it.name
        it.getTestCaseList().each {
            TC =it.name
            def asserting = project.getTestSuiteByName(TS).getTestCaseByName(TC).getTestStepByName(StepName).getAssertionByName("XPath Match")
            if (asserting instanceof com.eviware.soapui.impl.wsdl.teststeps.assertions.basic.XPathContainsAssertion) {
                project.getTestSuiteByName(TS).getTestCaseByName(TC)getTestStepByName(StepName).removeAssertion(asserting)
            }
            def assertion = project.getTestSuiteByName(TS).getTestCaseByName(TC)getTestStepByName(StepName).addAssertion("XPath Match")
            assertion.path = "declare namespace cor='http://soa.o2.co.uk/coredata_1';\ndeclare namespace man='http://soa.o2.co.uk/managepostpayinsurancedata_1';\ndeclare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';\n"
            assertion.expectedContent = "200"   
        }
    }

}
log.info("Testing Stop")

提前致谢

这是我能看到的错误日志:

Fri Nov 24 10:16:40 IST 2017:ERROR:groovy.lang.MissingPropertyException: No such property: project for class: Script13 groovy.lang.MissingPropertyException: No such property: project for class: Script13 at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50) at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231) at Script13.run(Script13.groovy:7) at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:90) at com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestStep.run(WsdlGroovyScriptTestStep.java:141) at com.eviware.soapui.impl.wsdl.panels.teststeps.GroovyScriptStepDesktopPanel$RunAction.run(GroovyScriptStepDesktopPanel.java:250) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

您在 getTestCaseByName(TC)getTestStepByName(StepName) 处缺少一个 . 点。

您可以解决以下错误

groovy.lang.MissingPropertyException: No such property: project for class: Script13

通过在脚本的顶部添加以下语句

def project = context.testCase.testSuite.project