关于soapUI和groovy,我试图获得断言(工作)并将XML中的响应转换为变量。我收到了错误
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
,但仍然无法想象。我做了另一次消息交换的尝试,也无济于事 - 据我所知,你可以在这个特定的实例中实际使用messageExchange
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
}
}
}
答案 0 :(得分:1)
如果您想从com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep
获得响应,可能的方法是首先使用getTestStep()
方法从此类中获取testStep。
此方法返回类com.eviware.soapui.model.testsuite.TestStep
的对象,您可以使用getPropertyValue(java.lang.string)
方法从此对象获取testSteps属性,如request,response,endpoint ...。
因此,在您的情况下,要使用响应:
def res = it.getTestStep().getPropertyValue('Response')
而不是:
def res = it.getResponseContentAsXml()
由于@tim_yates在这种情况下对异常描述进行了评论,因此非常清楚,所以请查看SOAPUI api以及下次:)
中答案中提供的链接。
希望这有帮助,