Support for Binary XML Formats

Applies to LoadComplete 4.97, last modified on May 20, 2019

This topic describes how LoadComplete supports the Binary XML format.

About Binary XML

Binary XML (MS-NBFX) is a binary format that can efficiently represent XML documents. Using this format reduces the verbosity of XML documents and decreases processing time and cost.

The Binary XML format is extended by another format - Binary SOAP (MS-NBFS). The Binary SOAP format uses the Binary XML format but specifies the set of strings to which a producer and consumer can refer.

The Binary XML and Binary SOAP formats are widely used in Silverlight applications for their browser-server communication.

What Does Binary XML Support Mean

LoadComplete can decode .NET Binary XML (Binary XML and Binary SOAP). This means that with LoadComplete, you can perform load testing of applications that use these formats to communicate with web servers. It supports recording and playing back of .NET Binary XML requests and provides you with access to individual data values that are sent to or received from the server. So, you can easily parameterize Binary XML requests.

To record Binary XML, 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 Binary XML format, you will see the contents of Binary XML requests and responses in the scenario editor:

Contents of a Binary XML Request

Click the image to enlarge it.

The Content-Type attribute of Binary XML requests is application/msbin1.

The Content-Type attribute of Binary SOAP requests is application/soap+msbin1.

Content-Type of a Binary SOAP Request

Parameter Attributes

For each parameter, LoadComplete displays the following information:

Column Description
Parameter The parameter name.

LoadComplete obtains the parameter name from the Binary XML 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 (2), 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[0], Item[1] and so on. Items of associative arrays are displayed with appropriate parameters, for instance, Item["MyAttrValue"].

Type The parameter type: Element or Attribute.
Value The parameter value as it was during the scenario recording.

If a parameter of the String type is empty, LoadComplete will not display anything in the cell.

If you see that a parameter has the String type and the Value is nil, this means that the parameter contains the string “nil”.

Variable 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.

Path 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 Binary XML Requests

The key benefit of accessing data values passed in Binary XML streams is that you can change them 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 a request that obtains data from the server.

For step-by-step information on parameterization, see Parameterizing Rich Internet Application Traffic.

Note: LoadComplete does not change the request structure. You can change parameter values, but you cannot create or delete parameters or change their type.

See Also

Supported Protocols and Data Formats
Support for Silverlight Applications
Parameterizing Rich Internet Application Traffic

Highlight search results