Top Web Performance Testing Articles

Apica´s Performance Blog is your source for tips, trends and tools for optimizing your web performance. Track current web performance metrics and brenchmarks and new technology in web performance testing.

Load Testing with Google Protocol Buffer (protobuf) Messages

Load Testing ProtobufThe ZebraTester program is filled with useful load test management tools for Google Protocol Buffer, or protobuf, messages. The mechanism not only helps streamline the load testing process, but also provides insight into the results that can be used to help improve the platform, troubleshoot errors, and identify inefficiencies.

About Protocol Buffers

Protobuf is a method of transferring structured data, akin to XML and JSON, but with one key difference: There’s no metadata included in the data transfer. The lack of metadata makes protobuf an extremely efficient method for moving data because it relies on structure and arrangement to assign values instead of declarations. The medium utilizes files called “FileDescriptorSets,” or .desc files, to match the raw data with metadata classifications upon reception. For example, an XML file would locate the value for “title” between opening and closing tags that consume 15 text characters, whereas protobuf avoids using the 15-character tags by placing the title first in sequence.Readable Data

About ZebraTester

The ZebraTester platform features full data integration support and allows the testers to view the protocol buffer data in a way that’s human-readable. Since the data in the transfer moves without meta information, the raw data will look like a jumble of nonsense without having a program that can apply the metadata for interpretation. ZebraTester also can perform tasks including extract/assign session variable fields and search ASCII text-fragments across the entire session, in addition to supporting automated distribution of the .desc files to the load generators.

ZebraTest: Post-Processing the Recorded Session Functions

Developers can run and analyze load testing information through ZebraTest by running through the following configuration and utilization procedures:

  • Automatic Detection of Protobuf Messages

ZebraTester automatically checks recorded data for protobuf data by searching for the term “protobuf” in all HTTP header fields named “Content-Type.” The platform will produce a warning message upon identifying the protobuf header.

  • Loading the Protobuf FileDescriptor Set

The platform matches protobuf data with the corresponding metadata by running a .desc file against the transfer data through the protoc compiler. Configuring this step requires matching the proper .proto file for the protoc compiler with the .desc file and transfer data. The web application development team can help generate the proper .proto file if one is not available.

  • Configuring the Message Type for all Protobuf Requests and Responses

The testing team next uses the ZebraTest platform to configure “Message Type” values for all protobuf requests and responses. The platform can make a guess at “Message Type” values, but it is recommended that testers obtain the correct values from the Web application development team.

  • Extracting and Assigning Variables from/to Protobuf Message Fields

After defining the “Message Type” values for the protobuf messages, the platform can be used to extract and assign variables for individual fields in protobuf messages.

Generating the Load Testing Program and Executing Load Testing

Running the load test through ZebraTest follows the usual process and does not require additional configuration. Simply combine the load test program, plug-ins, external local resources, and XML file for external resources through the program, and the platform will ZIP archive and distribute the assets to the load generators for testing.

Refer to the full guide for more detail on how ZebraTester can help your development team build better applications.

New Call-to-action