Thank you for you response nmrao.
soapUI structure:
Datasource
Original
GroovyScript
Modified
Original Request
attached is the original request.xml
Groovy Script:
def grUtils = new com.eviware.soapui.support.GroovyUtils(context)
noAccounts = Integer.parseInt (context.expand( '${DataSource#noAccounts}' ))
def fileNo = context.expand( '${DataSource#FileNumber}' )
//Copy XML content form one request to another (IDM_Original to IDM_Modified)
def ts = testRunner.testCase.getTestStepByName("Original")
def ts2 = testRunner.testCase.getTestStepByName("Modified")
String content = ts.getHttpRequest().getRequestContent()
ts2.getHttpRequest().setRequestContent(content)
//Removing Account Nodes
def ReqHolder2 = grUtils.getXmlHolder("Modified#Request")
def count = ReqHolder2.getDomNodes('//ARCAAccountReportBatch[1]/Accounts[1]/Account').size()
log.info(count)
if (noAccounts <= 4)
{
log.info("intheloop")
for (i in noAccounts+1..5)
{
log.info("//ARCAAccountReportBatch[1]/Accounts[1]/Account[$i]")
log.info("inloop"+i)
ReqHolder2.removeDomNodes("//ARCAAccountReportBatch[1]/Accounts[1]/Account[$i]")
}
}
else
{
log.info("is-11")
}
ReqHolder2.updateProperty()
//write the request and response to a file
def inputFileRequest = new File("V:\\AccountCreation_XMLs\\"+ "Account_" + fileNo+".xml")
def request = grUtils.getXmlHolder(context.expand( '${Modified#Request}')).getPrettyXml()
inputFileRequest.write(request)
//log.info(grUtils.getXmlHolder(context.expand( '${Modified#Request}')).getPrettyXml())
Modified Request:
See attached modified request.xml
No, the values changes everytime.
The objective is to create 100+ xml request with different account size. eg..some having only 2, some having 3 etc..
Thank you.