[英]groovy.lang.MissingMethodException:No signature of method --groovy script in soap
[英]soapUI groovy script groovy.lang.MissingMethodException
當我嘗試在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>
您可以將Script Assertion
添加到Soap Request Test步驟中。
這是腳本:
//Check if the response is not empty
assert context.response, 'Response is empty or null'
def rate = new XmlSlurper().parseText(context.response).'**'.find{it.name() == 'ConversionRateResult'}?.text() as Integer
log.info "Conversion rate result is : $rate "
//Check if the result rate is -1, change if needed
assert -1 == rate
我可以看到您使用了getNodeValue,但是在String上使用了錯誤
如果看到錯誤,則會顯示“沒有方法簽名:java.lang.String.getNodeValue()適用於參數類型: (java.lang.String)values ”
請參閱以下代碼,在正確的地方使用了getNodeValue的代碼
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);
def response = groovyUtils.getXmlHolder('SOAP Request#Response')
def refNum=response.getNodeValue("//*:ConversionRateResponse//*:ConversionRateResult")
log.info refNum
getNodeValue是一個非常有用的函數,它將對從xml中提取值有很大幫助,類似地,我們有getDomNode用於節點而不是值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.