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 retrieves and stores CloudTest objects such as user scenario recordings, test clips, test compositions, scripts, users, targets, performance data and test results.
Analytics Dashboard is 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. It also acts as a proxy to capture traffic from mobile and iOT devices. Browser recording can also be done with a Chrome extension to avoid having to install Conductor.
Maestro is a test engine, or load generator, 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 geographically distributed while still producing a single integrated set of test results and analytics.
Massively Multi-threaded Load Generation Architecture
The 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.
Distributed Web Services Architecture
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 architecturalflexibility 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.
CloudTest is architected to be deployed anywhere: on a single virtual machine or physical server, multiple servers or cloud servers. The distributed architecture maximizes cost savings, scale and flexibility, depending on your needs. Where should you deploy CloudTest? There are a number of questions to consider including:
- Are you using CloudTest for load and performance, functional automation testing, or both?
- Where are the applications under test (inside or outside the corporate firewall)?
- What security issues might come into play?
- Will CloudTest be used continuously or on ad hoc basis?
- For internal deployments, what sort of infrastructure options do you have?
- For load testing, is geographic spread important?
Cloud deployments are popular for their pay-as-you-go cost model and flexibility. You can dynamically size servers to your specific needs, increase disk capacity on-demand and drive load from load generators both behind the firewall and in the cloud. Internal deployments are often favorable when security issues come into play or for systems that are tightly integrated into a 24-hour continuous integration system, such as Jenkins.