Java Serialized Stream (JSS) Extension for Rational Robot and TestManager
The JSS Extension transforms raw socket data in previously recorded test scripts into lines that separate and identify the data elements of the Java Objects being transferred. The newly formed scripts can then be used to perform load, stress, and performance testing and benchmarking against the application.
To request an evaluation or see JSS pricing see the JSS Request page.
If you have JSS and would like to try it out, you could start with our JSS test page.
Recording Java Serialized Streams
The Rational TestSuite product line does not have support for the Java Object Serialization protocol, which will cause recordings on applications that use this protocol to have fragments similar to this simple example:
In order to use a script fragment like this in a performance test run, one usually replaces several key data elements with elements from a datapool. However, in this case, it is rather cumbersome to identify the data elements in the object, and even harder to come up with a VU statement that allows one to extract data.
After running this script fragment through the JSS extension, it will look like this:
Note that in this example, the raw data is split up into data and structural elements. The java_data() lines identify the type, field name, and value of each of the data elements, the java_def() lines show structural definition information about the objects, and the java_raw() lines are all the elements that are either not interesting or not supported yet.
Playing back Java Serialized Streams
Playing back scripts as shown above is straightforward. The java_data() and java_raw() commands translate their arguments back into the mixedmode form of the original script, only this time the user has replaced key data elements by values from a datapool.
Retrieving data elements from the incoming streams is also quite easy. By causing Robot to generate dumps of the incoming object streams (which the JSS also translates for you), one can look up the name for a certain element within a received object, and then simply call the jss_get_data() function to retrieve its data:
which would retrieve the value of the data element called "theInt" (which is "1234567890" in the above example). The returned string value can be used in further calls java_data() commands, allowing for easy including of session identifiers in your test scripts.