Distributed Performance Tests
Patrick has been charged with setting up a stress/performance test of a multi-tier web application.
The development team would like the test to start out with the application deployed to a cluster of
two application servers. Then, the team would like 20 client machines to simulate a load on the
application by running though pre-recorded test scripts.
Patrick can use the Application Lifecycle Automation server (ALA) capabilities in AnthillPro
to configure a BuildLife stage that runs a multi-machine stress/performance test like the one
described briefly above. BuildLife stages in AnthillPro ALA Server are configured as Workflow
definitions.
So, Patrick would define a new Workflow to perform the Stress/Performance test.
Each Workflow is made up of a set of Jobs that are performed during the Workflow Case.
Patrick would configure the workflow to simultaneously deploy the application to the two-server
cluster and deploy the pre-recorded test scripts to the 20 client machines. An Agent Filter
on the first job would identify the two machines in the server cluster and the Agent Filter
on the second job would identify the 20 client machines.
Patrick would then configure Jobs to run the actual tests. One for the server cluster
and the other for each of the client machines. The Job Configuration for the server cluster would
define steps to initialize the application, a step to synchronize the completion of initialization,
a step to synchronize the end of test, and perhaps a step to gather and publish performance reports.
The Job configuration for each of the client machines would define steps to initialize the client,
synchronize the completion of initialization, run the test scripts, synchronize the end of test, and
cleanup. Each Job would execute on the appropriate machines due to the Agent Filter that is associated
with its Job
Once configured, AnthillPro would be able to execute the stress/performance tests on any
BuildLife of the project. The development team could be using AnthillPro to run continuous
integration tests and thus may produce 10 or more BuildLifes per day. A nightly schedule
may take the best Continuous Integration build (BuildLife) from that day and run the stress/performance
test BuildLife stage on it. Or, a developer (or any other user with appropriate permissions) may use
the AnthillPro web interface to manually kick off the stress/performance test Workflow on any
existing BuildLife.
Finally, Patrick has time to catch-up on his other work and eat a sit-down lunch with his co-workers
(instead of another cold sandwich in the testing environment).