2017-05-25 174 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

相關問題