This topic describes how LoadComplete supports the SOAP protocol.
SOAP is an XML-based protocol designed for exchanging structured data in decentralized, distributed systems. SOAP is used to transfer XML messages between two network nodes via any transport protocol: TCP, HTTP, SMTP, and others.
What Does SOAP (XML) Support Mean
Since LoadComplete supports recording and playing back of HTTP traffic, it can also record and play back SOAP (XML) requests. LoadComplete can decode data from and encode them into the SOAP stream. This feature lets you easily parameterize the recorded traffic.
Also, LoadComplete supports automatic correlation of SOAP request and response data. See About Data Correlation.
To record SOAP requests, you do not have to make any special preparations. You can record traffic in the same way as you record HTTP traffic (see Recording User Scenarios).
If you record a user scenario on a web application using the SOAP protocol, you will see the contents of SOAP requests and responses in the scenario editor:
Click the image to enlarge it.
Content-Type attribute of SOAP requests is application/soap+xml:
For each parameter, LoadComplete displays the following information:
||The parameter name.
LoadComplete obtains the parameter name from the SOAP stream. The parameters, whose names LoadComplete fails to retrieve, are reported as
Unnamed. If there are several such parameters on the same tree level, they are reported as
Unnamed (3) and so on. The index is restarted on each level.
Array items are displayed as
Item[index_in_the_array], for example,
Item and so on. Items of associative arrays are displayed with appropriate parameters, for instance,
||The parameter type: Element or Attribute.
||The parameter value as it was during scenario recording.
If a parameter of the String type is empty, LoadComplete will not display anything in the cell.
If you see a parameter has the String type, and the Value is nil, this means the parameter contains the string “nil”.
||In responses, you use variables to store parameter values that LoadComplete extracts during a test run. You can then use those values in subsequent requests.
In requests, you replace the recorded parameter value with the value of the specified variable. This can be either a value extracted from a previous response, or a value that LoadComplete generates or loads from an external file.
||The path to the parameter in the parameter tree, starting from the root element.
You use the path to create correlation rules for parameters. See Data Correlation.
You can also use the path to create data selectors and data replacers to extract parameters from responses and to replace the recorded parameters with the needed values.
How You Parameterize SOAP Requests
The key benefit of access to data values passed in SOAP streams is that you can change them during in your tests. This helps you pass information from earlier requests to further requests with ease. The entire procedure is very simple:
Open your scenario for editing.
In the scenario editor, find the request that obtains data from the server.
For step-by-step information on parameterization, see Parameterizing RIA Traffic.
||LoadComplete does not change the request structure. You can change parameter values, but you cannot create or delete parameters or change their type.
Supported Protocols and Data Formats
Support for HTTPS Applications