Features
Test recording
The first step in creating a stress test is recording a test.
To record a test, you simply navigate through the site or application which will be tested.
CloudPuncher provides a tool called AppPuncher which records all the communication between
the browser and the server. This includes requests for static pages, stylesheets, javascript files as
well as form submissions and AJAX requests. AppPuncher can also record client/server interaction
between applications using Flex, Flash or Silverlight components (or is entirely built with any of these technologies),
AppPuncher will be able to intercept those requests as well. Once a test is recorded, it can be synchronized with your
CloudPuncher account.
Rich client support (Flex, Silverlight, AJAX)
Rich Internet Applications (RIAs) add a new dimension of complexity when it comes to
stress and performance testing. RIAs use more advanced forms of client/server communications than traditional web application. This is required
to enable richness and interactivity the RIAs provide. CloudPuncher includes rich support for recording and replaying user sessions originated from
RIAs developed with Flash, Flex and Silverlight. The product supports a sophisticated system of value substitution during stress tests thus allowing
simulation of real-world high volume traffic. Additionally, CloudPuncher provides monitors for most popular RIA servers including
Adobe LiveCycle DS, Adobe BlazeDS and Midnight Coders WebORB. The monitors can instrument the performance of the servers during a stress test.
Test randomization
Replaying a recorded test will execute all the requests in their original form.
This approach is not practical for a realistic stress test as in a real-world scenario users would not be working with the same data in an
application. CloudPuncher supports randomization of the requests through configurable data 'catalogs'. A catalog can be created based
on the data obtained during the execution of a test or using static data sources (files, database queries, etc).
Monitoring
Application monitoring during a stress test enables testers and developers to
diagnose problems and bottlenecks before they are discovered by an increased traffic of real-world users. Monitoring can pin point spikes
in resource utilization on the server-side. CloudPuncher not only provides several thousand monitors out of the box, but also supports
user-defined monitors. While a stress test is running, server monitors periodically submit collected data which is superimposed the
data collected from the client-side.
Multiple workflow support
CloudPuncher can execute a stress test consisting of multiple workflows.
A workflow is a path a user goes through on a website or online application. Typically sites and applications have multiple workflows â
guests, registered users, administrators will be going through different paths. A realistic stress test should mix multiple workflows
to measure true performance of the system. When you configure a stress test, you can use the intuitive interface of the CloudPuncher
scenario builder to specify the percentage of workflow instances in a test. For example, 80% should be guest users, 10% registered
users and 10% administrators.
Custom client allocation
Conducting a stress test can be as simple as launching a large number of clients
accessing your application. However a realistic stress test should represent a real-world scenario of users navigating through your website or
using your online application. As a result, it is important to structure a test where the allocation of new users/clients follows a real-world
pattern or one which could identify potential performance problems in the application. CloudPuncher scenario builder provides several
options for configuring multiple client allocation policies including incremental ramp-up of concurrent users, intervals of high/low number
of user or a completely custom, user-defined policy.
Unlimited client support
CloudPuncher architecture leverages the power and elasticity of cloud computing
infrastructure and supports stress tests with virtually unlimited number of concurrent clients. CloudPuncher stress tests can be designed to
incrementally increase the number of concurrent clients until a configurable error condition takes place. This includes response time increasing
specified value or the number of errors reported by the server. This approach can determine the number of concurrent clients your system can
support whether it is in the hundreds or millions.
Multiple browser support
Traditional web sites and online applications may have different strategies for
rendering content or the application itself depending on the type of browser or the device accessing them. For instance, an application
can be rendered very differently in iPhone web browser than in Internet Explorer. As a result, it may be important for a stress test to
have multiple representations of browser types. CloudPuncher recognizes that need and provides a way to customize the breakdown
between different types of browsers participating in a test.
