Why Load Test An Application • Does the application respond quickly enough for the intended users? • Will the application handle the expected user load and beyond? • Is the application consistently behaving when more users access the same? • Will the application handle the number of transactions required by the business? • Is the application stable under expected and unexpected user loads?
OBJECTIVE EXAMPLE OBJECTIVE EXAMPLE Functional vs. Load Web Testing Functional test Do business processes function properly after implementation? (tested mostly in black box mode) Functionality Load test Will 2,000 concurrent hits crash the server? Stability Is response time acceptable according to specifications? Performance Do business processes function properly under heavy load? Functionality under load
Component Testing Load Testing Stress Testing Volume Testing Types of Performance Testing Find the behavior and performance of each tier/unit. Find out whether the system can handle the expected load upon deployment under real-world conditions. This happens even during business as usual period. Overload the system beyond its expected number of users or transactions. Usually this happens for shorter duration, but causes more congestion. Find the stability of the system with respect to handling large amounts of data over extended time periods.
Coordinator Web server Database server Analysis? 123.20 Testers Load Generation System Under Test Manual Testing Is Problematic • Do you have the testing resources? • Testing personnel • Client machines All of you, click the GO button again How do you synchronize users? How do you collect and analyze results? How do you achieve test repeatability?
Overcomes resource limitations Controller Vuser host Web server Database server Analysis Load Generation System Under Test The Tool Solution • Replaces testers with “Virtual Users” • Runs many Vusers on few machines • Controller manages the Vusers • Meaningful results with analysis tools • Repeats tests with scripted actions
4 Main Components of Load Testing Tools • Scripting Component • Used to Create a Script which mimics a single user activity on the application. The Script is called Vuser Script. • Load test Execution Component • Execute the script as several users. • Analysis • Analyzing various performance counters. • Monitoring (Web Server, Database Server, Networks…).
NeoLoad • A load testing tool by Neotys. • Tool that measures performance and behaviour of the system under load. • Used for testing web applications, Web services, flex applications Oracle forms and Silverlight applications. • Uses Java Script for script enhancements.
Basic Neolaod Load Testing Terminologies • Vuser Script : The script which mimics a single user activity on the application. This is done by capturing the Http traffic between browser and server. • Container : A group of Http requests that represents a single user action. • Population : This defines the number of users. • Scenario: This shows the number of users, run pattern and various other run time settings to mimic the real world load test.
Neoload testing process • Create a script that mimics a single user activity on the applications. • Enhance the script by using pass by values, variables and assertions. • Validate the vuser script. • Set the population and define a scenario. • Create monitors to monitor the server parameters. • Run the load test • Analyze the results.
Softsmith Neoload Testing Services • Softsmith has a 1000 vuser license. This means we can test the application upto 1000 concurrent users . • If you wish to avail our service, you can provide the basic details of you application and application url. • We conduct and free 100 user test for one hour and provide you the report. • If you are satisfies and wish to avail our service we provide a time and money estimation. • For further details please contact our sales team at email@example.com.
Quick Start ……… Our Test will undergo following phases: • Recording the Test Scenario. • Running the test. • Test Results.
Recording the Test Scenario • Starting the recording Click on the "Start recording" button on the controller to start recording the scenario.
Recording the Test Scenario – cont… • Browser settings • NeoLoad will capture pages and record them into a virtual user profile. Choose the name of the profile to record, then select "Adobe RTMP" if your application is using the RTMP protocol. • By default, NeoLoad records only HTTP traffic. • Next, specify which web browser is to be used for the recording and whether the browser's cache and cookies should be cleared before recording.
Recording the Test Scenario – cont… 3. Entering the URL to be recorded • The browser displays the NeoLoad recording page, indicating that the browser settings are correct. • The browser is now ready to record the scenario. Enter the URL of the site to be tested and browse as normal.
Recording the Test Scenario – cont… 4.Grouping recorded pages by business transaction • At any time during the recording, you may create named containers in which to group the visited pages. • These containers represent the business transactions within your scenario.
Recording the Test Scenario – cont… 5.Stopping the recording • Close the browser to stop recording. You may also click on the controller's "Stop recording“ button.
Recording the Test Scenario – cont… 6.Creating your first virtual user • Once the recording is finished, a pop-up wizard is displayed. • Follow the steps through the wizard.
Recording the Test Scenario – cont… On the "Virtual Users" tab, you may configure the think time for the user. The think time is a simulation of the time spent by the user on the previous page before accessing the current page. This delay may be for each page individually, for all pages globally or variable within a given range.
Recording the Test Scenario – cont… 7. Checking the validity of the virtual user • Complex scenarios may require advanced settings. A failure to implement these settings will result in errors and an unexpected behavior for the virtual user. • For example, the virtual user will not create entries in the database. • Check the validity of the virtual user via the "Run / Start checking" menu item.
Recording the Test Scenario – cont… The "Check Virtual User" dialog displays the HTTP request and the HTTP response of each NeoLoad request.
Recording the Test Scenario – cont… • NeoLoad automatically flags in error any responses whose HTTP response code is an error code, • for example "500 Internal Error". Nevertheless, many applications return error messages within a valid "200 OK" response. In these cases, NeoLoad does not automatically detect the error. • If the virtual user does not behave as expected, check the responses to see if they contain an error message or an unexpected content. • Failure to handle a dynamic parameter will cause an error. Generally, it means that you may need to extract and inject some data.
Recording the Test Scenario – cont… 8. Creating a population • Click on the "Populations" tab. A pop-up wizard prompts you to create a population for the test. • A population is a group of virtual users. In this example, the population only contains the previously recorded virtual user.
Running the Test • The Scenarios tab • Click on the "Runtime" button, then on the "Scenarios" tab. • Configure the settings such as test duration, load policy (constant, ramp-up, peaks, custom) and the number of virtual users.
Running the Test – cont… Run the test by clicking on "Run" top menu, and then click on the "Start playing" button.
Running the Test – cont… 2. The Runtime Overview tab • This panel monitors the test sequence. It provides immediate statistics such as hits/sec., average response time and errors. • The test may be stopped at any time by clicking on the "Stop" button.
Test Results • The Test Summary tab • The test summary provides general statistics for the test, including total test duration, throughput, total number of hits, number of errors and average response time, together with important information such as slowest pages, pages with the highest error rates etc.
Test Results – cont… 2. The Values tab • This tab allows you to: • Quickly plot all the graph curves for a web page, HTTP request, a monitor or an indicator. • Sort the request and web page statistics. • Use "Filters" to filter the displayed results by load generator, population or virtual user. • Use the "Type" drop-down list to switch between Web Pages, HTTP Requests, Performance counters and Indicators.
Test Results – cont… 3. The Graphs tab • The "Graphs" tab can be used to plot a graph curve for any statistic in any request. Simply select • the required statistic among average response time, hits/sec., error rate etc., then drag and drop a Web • Page, a HTTP request or a Performance counter into the graph pane to the right. • You may also plot a curve for a previous test by selecting that test in the Results drop-down list • or compare two tests by selecting "Compare..." .
Test Results – cont… 4. The Errors tab • This tab displays detailed information on request errors encountered during the test. It itemizes • the requests sent to the server, the server's response and the results of the assertions checking its • validity. To help pinpoint the source of the error, you may access the request that precedes the request • containing the error from this tab.
Communication methodology • Neoload uses agent less communication between client and server. • It is based on the Push technology. • Push technology is a type of communication where information is "pushed" by the server to the browser, contrary to the normal "pull" principle whereby the browser initiates the request for information. • There are several Push methods: polling, long polling or streaming.
Thank You • For Queries on Neolaod or Load testing contact firstname.lastname@example.org.