Load Testing Tools Animesh Das Last Updated: May 20, 2014
text
CONTENTS Contents 1 Introduction 1 2 Tools available for Load Testing of Databases 1 2.1 IO subsystem testing tools.................................... 1 2.2 RDBMS Level testing tools................................... 1 2.3 ApplicationLevel testing tools (DB Side)............................ 1 2.3.1 HammerDB........................................ 1 2.3.2 SwingBench........................................ 2 2.3.3 Oracle Real Application Testing............................ 2 2.3.4 Benchmark Factory for Databases DELL....................... 2 2.3.5 DBMonster........................................ 2 2.3.6 JMeter........................................... 2 2.3.7 SQL Load Generator................................... 2 2.3.8 AppPerfect........................................ 2 2.3.9 PolePosition........................................ 2 2.3.10 MySQLSlap........................................ 2 2.3.11 Simora........................................... 3 3 Application Level testing tools (Apps based) 3 4 Other Tools 3 Animesh Das May 20, 2014 i
2 TOOLS AVAILABLE FOR LOAD TESTING OF DATABASES 1 Introduction Load testing is the process of putting demand on a system or device and measuring its response. Load testing is performed to determine a systems behavior under both normal and anticipated peak load conditions. It helps to identify the maximum operating capacity of an application as well as any bottlenecks and determine which element is causing degradation. A load test enables you to measure response times, throughput rates, and resource-utilization levels, and to identify your applications breaking point, assuming that the breaking point occurs below the peak load condition. Load testing for a software system Load testing generally refers to the practice of modeling the expected usage of a software program by simulating multiple users accessing the program concurrently. As such, this testing is most relevant for multi-user systems; often one built using a client/server model, such as web servers. However, other types of software systems can also be load tested. Database Load Testing helps you design and simulate usage traffic which can be used to test your Database application infrastructure for performance, reliability and scalability. Load Testing of Database applications involves testing the performance and scalability of your Database application with varying user load. Database Load testing involves simulating real-life user load for the target Database application. It helps you determine how your Database application behaves when multiple users hits it simultaneously. Load and performance testing analyzes software intended for a multi-user audience by subjecting the software to different numbers of virtual and live users while monitoring performance measurements under these different loads. 2 Tools available for Load Testing of Databases Most of the load testing tools could be grouped in the following categories: 1. IO subsystem testing tools 2. RDBMS Level testing tools 3. ApplicationLevel testing tools (DB Side) 4. Application Level testing tools (Apps Side) 2.1 IO subsystem testing tools Measures response times by sending out IO requests to the storage devices. Examples: ORacle IO Number ( ORION ) Winsat Basic IO testing bundled with newer windows systems Iometer Intel 2.2 RDBMS Level testing tools Can use RDBMS calls to test system resources (uses database the same way as your application does) Can be used to test all main systems resources (CPU, Memory, IO) 1. SLOB The Silly Little Oracle Benchmark 2. Oracle Database I/O calibration feature 2.3 ApplicationLevel testing tools (DB Side) Main testing is done on this level and represents the Database Load Handling Capabilities 2.3.1 HammerDB HammerDB is an open source database load testing and benchmarking tool for Oracle, SQL Server, TimesTen, PostgreSQL, Greenplum, Postgres Plus Advanced Server, MySQL and Redis. Animesh Das May 20, 2014 1
2 TOOLS AVAILABLE FOR LOAD TESTING OF DATABASES 2.3.2 SwingBench Swingbench is a free load generator (and benchmarks) designed to stress test an Oracle database Swing- Bench consists of a load generator, a coordinator and a cluster overview. The software enables a load to be generated and the transactions/response times to be charted. Swingbench consists of the following sub-packages : SwingBench Data Generator Trace Analyser Database Monitor CPU Monitor DB Time Monitor 2.3.3 Oracle Real Application Testing SQL Performance Analyser Database Replay Workload Scale Up and custom workload creation support Worload Intelligence Integration with Oracle Test Data Management masking functionality and Oracle Application Testing Suite 2.3.4 Benchmark Factory for Databases DELL Benchmark Factory for Databases is a database performance testing tool that enables you to conduct database workload replay, industry-standard benchmark testing, and scalability testing. 2.3.5 DBMonster DBMonster is an application to generate random data for testing SQL database driven applications under heavy load. 2.3.6 JMeter The Apache JMeter desktop application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions. 2.3.7 SQL Load Generator SQL Load Generator is used to run multiple concurrent queries against SQL Server. The user can choose the number of concurrent queries to run, provide different queries, choose SQL or domain accounts, and provide application name settings. SLG was developed using C# 3.5. 2.3.8 AppPerfect AppPerfect offers Database Load Testing solution in the form of AppPerfect Load Test. AppPerfect Load Test Supports load testing for database Applications using JDBC protocol. 2.3.9 PolePosition PolePosition is a benchmark test suite to compare database engines and object-relational mapping technology. It is by no means complete. Database vendors and open source database project contributors are invited to improve the test implementations and to write further scenarios ( Circuits ). The Pole- Position framework will help to implement tests quickly and to time and output the results as number series and graph visualizations. Animesh Das May 20, 2014 2
4 OTHER TOOLS 2.3.10 MySQLSlap MySQLSlap is a Load Emulation Client. It runs in 3 stages : 1. Create schema, table, and optionally any stored programs or data to use for the test. This stage uses a single client connection. 2. Run the load test. This stage can use many client connections. 3. Clean up (disconnect, drop table if specified). This stage uses a single client connection. 2.3.11 Simora 3 Application Level testing tools (Apps based) Testing tools in this category mimics end users behavior as users would work with the system from their workstations. Tools like HP LoadRunner interact with application servers, using a variety of protocols (e.g. HTTP, HTTPS, Oracle Forms, etc.) to test all components of the system at the same time. 4 Other Tools Other web load testing tools include : ApacheBench OpenLoad Gatling Grinder NeoLoad HP LoadRunner Animesh Das May 20, 2014 3