A Toolbox for Performance Testers

By Nathaniel Couture and Chris Flint

July 8, 2019

The most common types of tools that one thinks of when the topic of performance testing is discussed are the load generation tools. Dozens of load generation tools come up when any term related to performance testing is entered into a search engine. However, this category of tool is only one of several. This article will explain each tool category and list some examples of each.

Load/Stress Generation Tools:

Load and Stress Generation tools are used to simulate the multi-user traffic that the system under test is expected to handle. Generally, they interact at the protocol layer, but recently, cloud-based tools have come online to exercise the system at the GUI/Browser level. All of these will help provide insight into causes for slow performance.

Below is a list of Load Generation tools that should be familiar to the Performance Tester:

Monitoring Tools:

Monitoring tools are primarily used to watch for potential errors and notify an administrator if any are detected. Monitoring allows businesses to ensure that the service in question is available to users when needed. Commonly tracked metrics include response times, availability/uptime, memory or CPU usage, disk read/write times, and network bandwidth usage. The type of service (e.g. a website, or a corporate network) will dictate the type of tool used; some common examples of tools, broken into categories, can be found below.

Website Monitoring:

Server Monitoring:

Network Monitoring:

(Live) Application Performance Monitoring:

Real User Monitoring:

Profiling Tools:

A profiler is a performance analysis tool that, most commonly, measures the frequency and duration of function calls. There are other specific types of profilers (e.g. memory profilers) in addition to more comprehensive profilers, capable of gathering extensive performance data regarding code runtimes, database transactions, etc. This category of tools is typically specific to the technology stack being used.

Event-based profilers:

Statistical profilers:

Visual and Statistical Data Analysis Tools:

One often overlooked category of tools used by Performance Testers are those used to support the transaction modeling, and results analysis. During the planning phase, it is common for a Performance Tester to use statistical analysis against data that captures current transaction/usage rates to further understand the behavior a performance test is trying to recreate. Similarly, data visualizations and aggregators are often helpful in assisting a Performance Tester in identifying bottlenecks and failure points. Useful tools include:


About Nathaniel Couture

Nathaniel (Nat) Couture, BSc MSc., has over a 15 years of experience in leadership roles in the technology sector. He possesses a solid foundation of technical skills and capabilities in product development including embedded systems, software development and quality assurance. With a decade of experience as CTO in two successful small ITC companies in New Brunswick, Canada, Nat has proven himself as a solid leader, capable of getting the job done when it counts by focusing on what's important. He's a very effective communicator who has mastered the art of simplicity. Nat has served as an expert witness on matters of software quality. He is always driving to adopt and create technologies that incrementally reduce manual labor and at the same time improve the quality of the end product."

http://www.nathanielcouture.com/, https://www.linkedin.com/in/natcouture/, @natcouture

About Chris Flint

Chris has been with PQA Testing for over 10 years and has tested everything from databases to websites. Within the last few years, he has turned his attention to performance testing, primarily using JMeter and Flood.io.

 

PQA on Twitter