Overview
Today, Web services get a great deal of traffic. To effectively handle
the traffic and offer improved performance for business-critical Web services,
companies need to predict the maximum load the web services can adequately
handle using a distributed architecture. To measure the performance of
such a system, QEngine provides the Distributed Load Testing option.
Illustration

Understanding
Distributed Load Testing
QEngine distributed load testing generates load from one single Test
Controller and simultaneously distributes the configured load in the remote
play engines. The distributed playback engine has the following components:
Test Controller
Test Controller is the machine were QEngine
is installed. The functions of Test Controller are as follows:
Generates and
distributes the load (Max Users configured in the Add Play Engine Screen)
in remote machines with different hardware configurations.
Starts the
load test execution in the distributed play engines.
At the
end of the test execution, automatically collects the test logs generated
in the distributed play engines and stores it in the respective directories.
QEngine Distributed Play Engines
Distributed play engines are the machines where
QEngine is installed with RMI Server for remote test execution. The functions
of play engines are as follows:
The play engine
is where the user requests sent by the Test Controller is replayed to
measure the performance statistics.
The play engine
automatically stores the test reports generated during the load test execution
in the common database.
Common Database
The common database is used both by the Test
Controller and the distributed play engines. The user requests generated
for the configured test parameters, the responses received from the distributed
play engines and the test reports generated and sent by the distributed
play engines are stored in the common database.
Steps
to enable Distributed Load Testing
The steps to enable distributed playback are as given below:
You can skip steps 1 to 3, if you have already generated the web service
scripts and configured the test parameters for load test execution.
Install QEngine in a
machine which acts as the Test Controller.
Start the QEngine Server,
open QEngine Web UI and generate the web service scripts as per the steps
given in the topic Adding
a New Web Service.
Parameterize the input
parameters (if required) as per the steps given in the topic Parameterizing
Load Test Scripts.
Define test parameters
such as user profiles and workloads. Configure server monitoring and database
monitoring (optional). Create test cases to associate the profiles and
workloads. To know the details, refer to the steps given in the topic
Defining
User Profiles, Defining
Workloads, Configuring
Server Monitoring, Configuring
Database Monitoring and Creating
Load Test.
As per your requirements
to distribute the load, install QEngine in machines with different hardware
configurations. Start remote agent in each of the distributed machines
using the StartDistributedAgent.bat/.sh
file in <QEngine_Home>/bin
directory.
From the machine where
QEngine Server is installed (Test Controller), open QEngine Web UI and
choose the Settings tab from Web
Service Performance Testing Home page. Scroll down to the end of the page
and from the last option Distributed Playback in this page, select the
check box Use Distributed Playback
and click Apply.
Click on the button Add Play Engines. The Play Engine Configuration
screen will be displayed.
In this screen, configure
the Play Engine IPs, RMI port and the maximum virtual users to be simulated
in the distributed play engines. This is to enable the Test Controller
to remotely contact the distributed play engines to perform distributed
load testing. For details of configuring Play Engine IPs, Port, and Max
Users, refer to the context-sensitive help in the following link
.
After configuring the
Play Engine IPs, Ports, and Max Users, start the load test execution as
per the steps given in the topic Executing
Load Test.
The test reports will
be generated after load test execution and stored in the common database.
The test logs will be stored in the respective directories in the Test
Controller.