Performance Testing - Kanwalpreet Singh Agenda Overview Need of Performance Testing Types of Performance Testing Tools available HP Loadrunner Components of Loadrunner ◦ Record and Replay ◦ Scenario Creation ◦ Analysis Loadrunner Testing Process Integration of Loadrunner with ALM Performance Center Overview Performance testing is a type of testing intended to determine the responsiveness, stability, and/or scalability of a system under a given workload. Performance testing is commonly conducted to accomplish the following: ◦ Assess production readiness ◦ Evaluate against performance criteria ◦ Find the source of performance problems ◦ Determine the current load system can handle Need of Performance Testing Performance testing is conducted to address one or more risks related to expense, opportunity costs, continuity, and/or corporate reputation. Some more specific reasons include: To assess infrastructure adequacy by evaluating current capacity. Improving the efficiency of performance tuning by: ◦ Analyzing the behavior of the application at various load levels. ◦ Identifying bottlenecks in the application. Assessing adequacy of developed software performance by: ◦ Determining the application's desired performance characteristics before and after changes to the software. Improves quality from user’s prospective Provide information related to the speed, scalability, and stability of a product prior to production release, thus enabling you to make informed decisions about whether and when to tune the system. Types of Performance Testing Volume/Load testing - This subcategory of performance testing is focused on determining or validating performance characteristics of the system or application under test when subjected to workloads and load volumes anticipated during production operations. Stress testing - Executed to understand how the system fails due to conditions at the boundary, or outside of, the expected tolerances. These tests are designed to determine under what conditions an application fail and what indicators can be monitored to warn of an impending failure. Stability testing - Aimed at validating the solution’s ability to sustain high load for a prolonged period of time. It is usually performed to identify issues related to memory management (leaks) or reliability (exception handling). Failover testing - Stresses the solution’s ability to react quickly to the failure of one or more of its components, either software or hardware Tools available There are various tools available in the market for load testing, few of them are: IBM Rational Performance Tester - Eclipse based large scale performance testing tool primarily used for executing large volume performance tests to measure system response time for server based applications. Jmeter - Java desktop application for load testing and performance measurement OpenSTA - Open source web load/stress testing application, licensed under the Gnu GPL. Utilizes a distributed software architecture based on CORBA. NeoLoad – Used for load testing mobile applications. HP Loadrunner - Performance testing tool primarily used for executing large numbers of tests (or a large number or virtual users) concurrently. Oracle Application Testing Suite – Used primarily for load testing Siebel applications. HP Loadrunner HP LoadRunner load tests an application by emulating an environment in which multiple users work concurrently. While the application is under load, LoadRunner accurately measures, monitors, and analyzes a system’s performance and functionality. LoadRunner works by creating virtual users who take the place of real users operating client software, such as Internet Explorer sending requests using the HTTP protocol to IIS or Apache web servers. Because numerous Virtual users can run on a single computer, LoadRunner reduces the amount of hardware required for testing. LoadRunner automatically records the performance of the application during a test. We can choose from a wide variety of graphs and reports to view the performance data. LoadRunner checks where performance delays occur: network or client delays, CPU performance, I/O delays, database locking, or other issues at the database server. Components of Loadrunner There are 3 main components of Loadrunner: Create/Edit Scripts – This component is also known as Virtual user Generator(VuGen). A script is recorded in this component as per the manual test case and then enhanced by adding script checks and dynamic variables so that the script can run multiple times. Run Load Tests – This component is also known as Controller where a scenario is created. A scenario describes the events that occur during a testing session. A scenario includes a list of machines on which Virtual users run, a list of scripts that the Virtual users run, and a specified number of Virtual users or Virtual user groups that run during the scenario. Analyze Test Results – This component is also known as Analysis. During load test scenario execution, Virtual users generate result data as they perform their transactions.The Report utilities enable you to view a Summary of each graph. A report automatically summarizes and displays the test’s significant data in graphical and tabular format. You can generate reports based on customizable report templates Loadrunner Testing Process Below is typical Loadrunner Testing Process: Planning the test – Prepare manual test cases that needs to be load tested. Creating Vuser scripts – Record the manual test cases through VuGen. Creating the scenario – Create the scenario in Controller. Running the scenario – Run the scenario for a specific duration. Monitoring the scenario – Monitor different performance counters during the test. Analyze test results – After the completion of the test, prepare analysis report and analyze test results. Loadrunner Testing Process - VuGen Loadrunner Testing Process - VuGen Loadrunner Testing Process – Controller (Design) Loadrunner Testing Process – Controller (Run) Loadrunner Testing Process – Analysis Integration of Loadrunner with ALM HP offers a software called Performance Center that helps in managing all the Loadrunner scripts within ALM. Different components of Performance Center are: ◦ Performance Center Host ◦ Performance Center Server Performance Center have built in Test Management Capabilities. Real time monitoring is available to testers and stakeholders. Performance Center offers scheduling Capabilities allowing multiple test to occur. Performance Center There is an additional side bar in ALM Performance center addition through which you can schedule your load tests for any time. Performance Center cont... All the recorded scripts can be saved in ALM by the following methods: Clicking on Upload Script within ALM Performance Center cont... Saving script directly through VuGen by creating a connection with HP ALM. Enter the ALM url and click on Connect. Once connected, enter the user credentials and select the required project.You can save the recorded script by clicking on “Save As” in ALM Test Plan Performance Center cont... A scenario can be created within Performance center by creating a Test Case of type Performance Test within Test Plan tab of ALM Questions??