当我尝试在soapUI测试步骤中解析响应时收到以下异常 . 还尝试了getXMLHolder方法 . 仍然没有运气 .
我错过了导入或库吗?
groovy.lang.MissingMethodException:没有方法签名:java.lang.String.getNodeValue()适用于参数类型:(java.lang.String)值:[// ConversionRateResponse / ConversionRateResult]错误:16行
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);
project = testRunner.getTestCase().getTestSuite().getProject().getWorkspace().getProjectByName("FirstProject")
testSuite = project.getTestSuiteByName("TestSuite 1");
testCase = testSuite.getTestCaseByName("TestCase 1");
testCase.setPropertyValue("fromCurrency","EUR")
testCase.setPropertyValue("toCurrency","TRL")
testStep=testCase.testSteps["SOAP Request1"]
def responseHolder=testStep.getPropertyValue("response");
def refNum = responseHolder.getNodeValue("//ConversionRateResponse/ConversionRateResult")
响应如下
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<ConversionRateResponse xmlns="http://www.webserviceX.NET/">
<ConversionRateResult>-1</ConversionRateResult>
</ConversionRateResponse>
</soap:Body>
</soap:Envelope>
2 回答
您可以将
Script Assertion
添加到Soap Request Test步骤 .这是脚本:
我可以看到你使用了getNodeValue,但在 String 上这是错误的
如果你看到你的错误,它说:“没有方法的签名:java.lang.String.getNodeValue()适用于参数类型: (java.lang.String) values ”
请参阅下面的代码,我们在正确的事情上使用了getNodeValue
getNodeValue 是一个非常有用的函数,它将有助于从xml中提取值,同样我们有 getDomNode 这是用于节点而不是值