-
Notifications
You must be signed in to change notification settings - Fork 0
Groovy Snippets
/ Loop until transitioned /
def jobState = context.expand( '${GetSmartSampleJobState#ResponseAsXml#//Results[1]/ResultSet[1]/Row[1]/JOB_STATE}' )
def delayCounter = context.expand( '${#TestCase#delayCounter}' ) delayCounter = delayCounter.toInteger() delayCounter++
testRunner.testCase.setPropertyValue("delayCounter", delayCounter.toString())
if ((jobState == "FAILED")){ testRunner.fail("Smart Sample Job failed") }
if ((jobState != "TRANSITIONED") && (delayCounter < 30) ){ sleep 10000 testRunner.gotoStepByName("GetSmartSampleJobState")
} else if ((jobState != "TRANSITIONED") && (delayCounter >= 30) ){ testRunner.fail("Smart Sample Generation timed out") }
/ Get docGuid to String /
import trsl.PropertyTransfer import trsl.RunTest def transfer = new PropertyTransfer(context)
def i = 1 def DocGuidString = "" def DocSetGuidString = ""
def requiredDocCount = context.expand( '${#TestCase#requiredDocCount}' ) def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context ) def responseAsXml = context.expand( '${GetDocGUIDs#ResponseAsXml#//Results[1]}' ) def holder = groovyUtils.getXmlHolder(responseAsXml ) for( item in holder.getNodeValues( "//DOCUMENT_GUID" )){ DocGuidString = DocGuidString + '"' + "$item" + '",' i++ if (i>requiredDocCount.toInteger()) break
}
DocGuidString = DocGuidString.substring(0, DocGuidString.length()-1) testRunner.testCase.setPropertyValue("DocumentString" , DocGuidString)
/ Create Files Under Directory /
import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; def uploadDirectory = context.expand( '${GetNasPathForUploadJob#ResponseAsXml#//Results[1]/ResultSet[1]/Row[1]/NATIVE_PATH}' ) log.info "The UploadDirectory is: " + uploadDirectory
//if GetNasPath step returns no results, fail the test step with the below assertion assert uploadDirectory != ""
testRunner.testCase.setPropertyValue("UploadNasLocation", uploadDirectory) def inputDir = context.expand( '${DataSource_SourceDir#sourceDir}' )
log.info("The Input Directory is " + inputDir) File srcDir = new File(inputDir); File destDir = new File(uploadDirectory);
try {
FileUtils.copyDirectory(srcDir, destDir);
}
catch (IOException e)
{
e.printStackTrace();
}
//Step is for making sure documents are ingested into DB. If not ingested would wait for 50 seconds def delayCounter = context.expand( '${#TestCase#delayCounter}' ) delayCounter = delayCounter.toInteger()
def ActualDocCount = context.expand( '${CheckDBForIngestedDocuments#ResponseAsXml#//COUNTDOCUMENT_GUID}' ).toInteger() def ExpectedDocCount = context.expand( '${#TestCase#NumberOfDocumentsUploaded}' ).toInteger() if((ActualDocCount < ExpectedDocCount) && (delayCounter < 10)) { delayCounter++ sleep (5000) testRunner.testCase.setPropertyValue("delayCounter", delayCounter.toString()) testRunner.gotoStepByName("DelayBeforeDBCheck") }
if(delayCounter == 6) { log.Error("The ingestion of documents took longer than 50 seconds. Upload ingestion Failed") assert(ActualDocCount == ExpectedDocCount) } testRunner.testCase.setPropertyValue("delayCounter", "0")