Types ST
Types ST
• Before going into the details, we should understand the factors that governs
Performance testing:
ü Throughput
ü Response Time
ü Tuning
ü Benchmarking
Performance Testing- Definition
• The testing to evaluate the response time (speed), throughput and
utilization of system to execute its required functions in comparison with
different versions of the same product or a different competitive product is
called Performance Testing.
• Tuning is performed until the system under test achieves the expected
levels of performance.
Why Performance Testing
• Identifies problems early on before they become costly to resolve.
• Reduces development cycles.
• Produces better quality, more scalable code.
• Prevents revenue and credibility loss due to poor Web site performance.
• Enables intelligent planning for future expansion.
• To ensure that the system meets performance expectations such as
response time, throughput etc. under given levels of load.
• Expose bugs that do not surface in cursory testing, such as memory
management bugs, memory leaks, buffer overflows, etc.
When is it required?
Design Phase:
Pages containing lots of images and multimedia for reasonable wait times.
Heavy loads are less important than knowing which types of content cause
slowdowns.
Development Phase:
Deployment Phase:
Modify
Modify load test scripts defined by recorder to reflect more
realistic Load test simulations.
Defining the project, users
Randomize parameters (Data, times, environment)
Randomize user activities that occur during the load test
Virtual Users (VUs): Test Goals
Start: 5 Max Response Time <= 20 Sec
Incremented by: 5
Maximum: 200
Think Time: 5 sec
Test Script:
One typical user from login through completion.
• Monitoring the scenario: We monitor scenario execution using the various
online runtime monitors.
• Analysing test results: During scenario execution, the tool records the
performance of the application under different loads. We use the graphs and
reports to analyse the application’s performance.
Load Testing
Why Planning
• As in any type of system testing, a well-defined test plan is the first
essential step to successful testing.
ü Gathering Requirements
• All the requirements and resources should be evaluated and
collected beforehand to avoid any last minute hurdles.
Analyzing the Application
• Load testing does not require as much knowledge of the application as
functional testing does.
• Load tester should have the idea on how the application is actually used in
production to make an informed estimate.
• Load tester must know the application architecture (Client Server, Local
Deployment, Live URL), Platform and Database used.
Defining Testing Objectives
• Determining and recording performance testing objectives involves
communicating with the team to establish and update these objectives as
the project advances through milestones
Coordinator
Jmeter
Rubis
OpenSTA
• Developed in C++
• HTTP Load Test Application
Advantages:
• Open Source Software
• A user-friendly graphical interface
• The script capture from the browser
• The monitoring functionality
Drawbacks:
• Only designed for Windows
• Only for HTTP
DieselTest
• Software designed in Delphi5
• For systems under NT Environment
• For HTTP/HTTPS applications
Advantages:
• Open Source
• The quality of the chart
• Simple and fast to use
• The logging functionality
Drawbacks:
• The manual edition of the tests is badly designed
• The ambiguity of certain results
• Distributed tests are impossible
• Specific technology environment (Delphi, NT)
TestMaker
• Developed in Java
• For HTTP, HTTPS, SOAP, XML-RPC, Mails (SMTP, POP3 and IMAP)
applications
Advantages:
• The possibility to build any kind of test agent
• The power of Java programming with some Python simplifications
• Open source
Drawbacks:
• Familiarity with the Jython scripting language, Java language and to
write it from scratch
• The monitoring tools are very basic, since it is limited to the response
analysis
• Must pay for distributed testing
Grinder
• Generic framework for load testing any kind of target systems, with
scenario in Jython
• Developed in Java
Advantages:
• Open Source
• You can test everything with scripts in Jython
Drawbacks:
• Deployment for distributed test
• Poor results and graphical interface
LoadSim
• LoadSim is an open source software developed in Java, which is
designed for HTTP distributed load testing
Advantages:
• Open Source
• Generation of script
• Each client have a different configuration (user, script…)
Drawbacks:
• No graphical interface
• Poor results
• No graphical representation of result
• No monitoring
Jmeter
• 100% Java desktop application
• For Web and FTP, Java, SOAP/XML-RPC, JDBC applications
Advantages:
• Open Source
• The distributed testing
• Various target systems
• Extensibility: Pluggable samplers allow unlimited testing capabilities
Drawbacks:
• Chart representation quite confuse
• Terminology not very clear
• Necessary to start remote machine one by one
• Remote machines must be declared in a property file before starting
application
Rubis
• Provided with some load-test tool (designed for Rubis, but some parts
of code could be re-used) and a monitoring system.
• Developed in Java.
Advantages:
• Open Source
• Monitoring capabilities
• Charts representations and automatic generation of HTML report
Drawbacks:
• Specific to Unix environment and Rubis application
Empirix eLoad
• Accurate testing of the response times and scalability of web
applications and web services
• Recording in VBscript
Advantages:
• Can simulate hundreds and thousands of concurrent users
• Monitoring capabilities and Charts representation
• Reasonable Price
Drawbacks:
• Complex User Interface
• Limitations in recording of complex scenarios