2015-06-16 29 views
0

關於soapUI和groovy,我試圖將XML中的斷言(工作)和響應都變爲一個變量。我得到錯誤如何在groovyScript中獲得testStep responseAsXml

groovy.lang.MissingMethodException: No signature of method: com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep.getResponseAsXml() is applicable for argument types:() values: [] error at line: 6 

我已經嘗試添加import com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep,但仍然不能確定它。我做了消息交換另一種嘗試,也無濟於事 - 從我的理解,你不能如果你想從com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep響應在這種特定情況下

import com.eviware.soapui.model.testsuite.Assertable.AssertionStatus 
def TestCase = testRunner.getTestCase() 
def StepList = TestCase.getTestStepList() 

StepList.each 
{ 
    if(it.metaClass.hasProperty(it,'assertionStatus')) 
    { 
     if(it.assertionStatus == AssertionStatus.FAILED) 
     { 
      def ass = it.getAssertableContentAsXml() 
      def res = it.getResponseContentAsXml() 

      log.error "${it.name} " + "${it.assertionStatus}" 
      log.info ass + res 

     } 
    } 
} 
+3

作爲例外說得很清楚。類['WsdlTestRequestStep'](https://www.soapui.org/apidocs/com/eviware/soapui/impl/wsdl/teststeps/WsdlTestRequestStep.html)沒有「getResponseContentAsXml」方法 –

回答

1

實際使用messageExchange,一個可行的辦法是先使用getTestStep()方法獲得此類中的testStep。

該方法返回一個com.eviware.soapui.model.testsuite.TestStep類的對象,從這個對象中可以得到testSteps屬性,如請求,響應,端點...使用getPropertyValue(java.lang.string)方法。

你的情況

因此獲得響應的使用:的

def res = it.getTestStep().getPropertyValue('Response')

代替:

def res = it.getResponseContentAsXml()

由於在這種情況下,很明顯@tim_yates評論異常說明,所以請查看SOAPUI api以及下次回答中提供的鏈接:)

希望這會有所幫助,

+0

通過該API對於像我這樣的n00b來說並不是那麼簡單,但我應該看到這一點。謝謝@tim_yates和albciff – MistaWizard

+0

@MistaWizard可能它不是簡單的,不幸的是,沒有代碼幫助的soapui中的groovy編輯器並不是最好的開始。很高興幫助你':)'。 – albciff