Architecture of CloudTest


CloudTest is a dynamic Web application that combines an innovative Ajax-based user interface with three distributed Web services to support test creation, test execution, and test result analytics. These three services include the repository, Maestro, and the Analytics dashboard.

Repository. Retrieves and stores CloudTest objects such as user scenario recordings, test clips, test compositions, play lists, users, targets, performance data and test results.

Maestro. A test engine, implemented as a massively multi-threaded service, which executes all or parts of a complex test composition. A single Maestro node is capable of sending and validating responses to thousands of http messages per second. Multiple Maestros can be combined to each execute parts of a large load test that can scale out to tens and hundreds of thousands of virtual users. Maestros can be geographically distributed and single test compositions can run while still producing a single integrated set of test results and analytics.

Analytics dashboard. A memory-based analytic service (with persistence to disk) purpose-built to handle very large result sets and analytics from the most complex distributed load tests with great performance. In addition, the Analytic Dashboard automatically correlates many data streams from a distributed load test into a single test result on a synchronized timeline.

In addition, CloudTest includes an installable software agent called Conductor that records http(s) message traffic for test creation, launches browser instances, and plays UI/Ajax/Flex tests on client machines.

Maestro test engine

The Maestro test engine is based on a massively multi-threaded software design that drives today’s modern multi-chip, multi-core servers to their full potential. When you really need to turn up the volume on your load test, CloudTest allows you to scale out to higher numbers of virtual users with less hardware. You save hardware expense and the logistics of driving a high volume test are easier to handle.

High volume testing

CloudTest supports the ability for multiple Maestro test engines to be "stacked" in order to scale out the CloudTest architecture for high volume load testing. Each Maestro node is capable of driving load testing for multiple virtual users. For load testing larger numbers of virtual users, CloudTest enables test designers to easily control which parts of a complex test composition will run from which physical Maestro server.

Distributed web services

All of the components of the CloudTest architecture are services-based and can be installed on different physical servers to maximize scale and performance. This architectural flexibility allows the CloudTest application to be run in many hardware configurations starting from a single all-in-one server node all the way to a very complex large global test network capable of running a test simultaneously from many server nodes distributed around the world.

Test clips

The building block of testing in CloudTest is the Test Clip. A test clip is a visual script that is composed of a series of timed or sequenced events (an event can be an http message or an API call.) Once built and debugged, these test clips can be reused for any type of load or performance testing. This is a very powerful feature of the CloudTest design that can substantially improve the productivity of a performance testing team.

Web-based user interface

CloudTest has a browser-based UI that can be accessed from all major Web browsers. Cross browser support enables your testing team to create, run, and analyze test results from anywhere in the world, at anytime. CloudTest allows geographically distributed teams to collaborate and leverage their testing resources to achieve a high quality result that everyone can immediately share.