2017-05-25 129 views
1

标签之间提取XML值我想通过测试步骤的x量在Groovy了SoapUI - 使用Groovy脚本

迭代并提取XML值我发现在计算器上的东西,已经工作,实际上采样值。但是,我无法实现一个循环。

Here's a link!我发现哪些是非常有用的;我仍然无法执行。

这是我在这里找到脚本:

def project = testRunner.testCase.testSuite.project ; 
def tcase = 
project.testSuites["Testsuite_name"].testCases["TestCase Name"] ; 
def tstep = tcase.getTestStepByName("TestStep"); 

def responseTestSuite1 = tstep.getPropertyValue("response"); 

log.info(responseTestSuite1.toString()); 

def gutils = new com.eviware.soapui.support.GroovyUtils(context); 
def holder = gutils.getXmlHolder("$responseTestSuite1"); 

def byteResponse = holder.getNodeValue("//*:number") 

的这个输出是:脚本结果:023903122

答案可以发现here

如果任何人都可以帮助,那会很棒!

+0

你能告诉你的测试用例的屏幕截图?你只想处理你在脚本中提到的特定步骤?如果是这样,'遍历x个测试步骤'是令人困惑的。请澄清。使用编辑问题进行更新。 – Rao

+0

对不起,我想遍历大约14个TestSteps并检索(“// *:number”) – Adem

+0

好吧,请加上请求的信息 – Rao

回答

0

在您的情况下,变量tcase引用TestCase对象。

并且您可以使用tcase.getTestStepCount()获取步骤计数,并且可以使用tcase.getTestStepAt(int index)逐步获取索引。

通过步骤,以便循环,你可以像这样

def tcase = context.getTestCase() 
def stepCount = tcase.getTestStepCount() 
for(int stepId = 0; stepId<stepCount; stepId++) { 
    def tstep = tcase.getTestStepAt(stepId) 
    if(tstep instanceof com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep) { 
     //only if this wsdl test do something: 
     log.info("label : ${ tstep.getLabel() } ") 
     log.info(" class : ${ tstep.getClass() } ") 
     log.info(" props : ${ tstep.getPropertyNames() } ") 
    } 
} 
+0

嗨Daggett,这是伟大的;我将如何实现XML部分。谢谢 ! – Adem

相关问题