Ask a Question

URGENT- SOAPUI- Dynamical XML for creating elements

SOLVED
skaushik9
Occasional Contributor

URGENT- SOAPUI- Dynamical XML for creating elements

Hi, I have a below structure in my Test case

Note - I am using Soapui PRO

1) Data source - reading multiple rows from Excel file
2) Request method
3) Data source loop

When I run the test case, data source takes multiple rows from the Excel file. It loops each row and generates separate XML file for each row. For example

Message 1 for first row in Excel

Header XML elements
<......>
Child XML elements

Ship no 1
Qty 1
Batch number 001

Message 2 for second row in Excel

Header XML elements

Child XML elements

Ship no 2
Qty 5
Batch number 002

_-----------++++++----------

What I want is

Message

Header XML elements

Child XML elements

Ship no 1
Qty 1
Batch number 001

Ship no 2
Qty 5
Batch number 002
1 ACCEPTED SOLUTION

Accepted Solutions
Nastya_Khovrina
Moderator

Re: URGENT- SOAPUI- Dynamical XML for creating elements

Hi skaushik9,

 

The DataSource Loop isn't helpful here. If you use it the request is sent each time when you iterate through rows.

 

You can do the following:

1. Continue using the Excel file as a source, but use a Groovy script to read the data from it. 

2. Store the data in the XML file. In this case, you will be able to use the DataSource of the Directory (xml) or File (txt) type to read all the content and write to one property.

Please see the screenshots: 

 

DataSource - Directory

ReadyAPI_2019-04-03_14-41-35.png

ReadyAPI_2019-04-03_14-44-03.png

DataSource - File

ReadyAPI_2019-04-03_14-44-47.png

 

View solution in original post

8 REPLIES 8
nmrao
Community Hero

Re: URGENT- SOAPUI- Dynamical XML for creating elements

You may need to change the approach.
What purpose it is solving to have excel? Instead why can't you have desired request in the request itself?


Regards,
Rao.
skaushik9
Occasional Contributor

Re: URGENT- SOAPUI- Dynamical XML for creating elements

Thanks for picking this up.

As my number of lines may be different in each request for example it may be 3 or 4 or 6 etc so I am using Excel to pass data to request instead of creating XML elements based on data and hardcoding them with parameters.

Thanks

skaushik9
Occasional Contributor

Re: URGENT- SOAPUI- Dynamical XML for creating elements

Rao - Should I provide more details on my requirements or it's clear. See above post
nmrao
Community Hero

Re: URGENT- SOAPUI- Dynamical XML for creating elements

But the way you have the data is not allowing you to achieve what you are looking for. Then what is the use of data source which you currently have?


Regards,
Rao.
skaushik9
Occasional Contributor

Re: URGENT- SOAPUI- Dynamical XML for creating elements

Rao - Can you suggest right solution for my requirements

I have data in Excel sheet. Rows can change for each call to the request. Sometimes I get 2 lines and sometimes I get 3 lines.

I want to ready and pass data from Excel sheet and dynamically created nodes in XML in one message itself

Message Example

Header

......

Nodes

< Item no = ? >
< Batch number =?>

Nodes elements should be dynamically added based on number of rows in Excel


Please advise

Thanks

Sameer Kaushik
skaushik9
Occasional Contributor

Re: URGENT- SOAPUI- Dynamical XML for creating elements

Rao - Please advise the solution for my requirements.

I need to read data from Excel and then create child XML nodes based on number of rows in Excel which will be dynamic
skaushik9
Occasional Contributor

Re: URGENT- SOAPUI- Dynamical XML for creating elements

Rao - Any update or advice you can provide on above

Sameer Kaushik
Nastya_Khovrina
Moderator

Re: URGENT- SOAPUI- Dynamical XML for creating elements

Hi skaushik9,

 

The DataSource Loop isn't helpful here. If you use it the request is sent each time when you iterate through rows.

 

You can do the following:

1. Continue using the Excel file as a source, but use a Groovy script to read the data from it. 

2. Store the data in the XML file. In this case, you will be able to use the DataSource of the Directory (xml) or File (txt) type to read all the content and write to one property.

Please see the screenshots: 

 

DataSource - Directory

ReadyAPI_2019-04-03_14-41-35.png

ReadyAPI_2019-04-03_14-44-03.png

DataSource - File

ReadyAPI_2019-04-03_14-44-47.png

 

View solution in original post

cancel
Showing results for 
Search instead for 
Did you mean: