Load Testing

What is Load Testing & Why is it Important?

Load testing is the practice of simulating real-world usage, or load, on any software, website, web application, API, or system to analyze and identify factors such responsiveness, degradation, and scalability.

What is Load Testing?

The definition of load testing generally refers to the load testing as a subset of the software performance testing process, which typically also includes several other types of tests, such as stress testing, soak testing, spike testing, endurance testing, volume testing, and scalability testing, among others.

Poor performing sites and applications can have a negative impact on conversions, transactions, and most importantly, revenue.  Even a few seconds of downtime can significantly impact a company’s bottom line. A 2016 survey conducted by ITIC found that a single hour of downtime cost companies an average of $100,000. If you were to consider specific industries that depend on high-volume transactions, such as financial services or large online retailers, the impact is likely to be more significant and exceed millions of dollars per hour.

By simulating real-world workloads on your sites, applications, and systems, developers are able to measure the limits and gain insight into the metrics that can help answer questions such as the following:

Data Graph

  • How will the number of users affect performance?
  • How many simultaneous users can my website, application, or system handle?
  • Where are the bottlenecks?
  • How many transactions can we handle in a given period?
  • What’s the breaking point? When will I run out of resources?

In the past, load testing was usually only carried out towards the completion of a development project, but with the renewed focus on the Agile software development process, development teams are shifting their testing to the left, meaning earlier and more often in the process. Knowing exactly how much your site, application, system, or API can handle will help identify and uncover numerous issues, such as bugs and database slowdowns, well before any code is committed into your staging environment. For example, all client-side applications should be put through various tests to determine its limits to improve user experience.

Performance Testing with LoadView

LoadView is an on-demand, cloud-based load testing platform that determines how a site, web or mobile application, or API responds to various traffic – without the hassle of having to manage, invest, or maintain any additional testing infrastructure. Load testing can be a time-consuming process. LoadView manages the tedious tasks, such as instantiating load generators and setting up global distributed agents. This gives developers more time for designing, executing, and analyzing their load tests.

Cloud Load Test

Depending on the specific need, use case, or technology of the system being tested, the LoadView platform can be utilized to run three user simulation types – HTTP/S, headless browser-based, and real browser-based simulations.

  • HTTP/S-based load simulation: Although becoming outdated due to modern applications, protocol level scripts are perfect for component level tests in CI/CD environments and have a low footprint on load injection machines.
  • Headless browser-based simulation: Often faster than real browsers since you bypass all the elements of a real browser like JavaScript, CSS, and HTML, headless browsers are great for automating tasks and instances where you’re looking to get browser data quickly.
  • Real browser-based simulation:  When you need to mimic real user behavior and have web applications that utilize specific technologies and rich Internet applications (RIA), such as JavaScript, CSS, Flash, or Ajax, using a real browser is key. Using this simulation allows developers to verify the site’s functionality and speed as perceived by a user.

The EveryStep Web Recorder – Create Custom Load Testing Scripts for Websites and Applications

The EveryStep Web Recorder is a free web-based scripting tool that records every step of a web transaction and replays the script using a real browser. Record multi-step test scripts of the critical and complex actions your users make, such as button clicks, menu selections, form submission, shopping carts, and text inputs. Compatible with over 40 desktop (Chrome and Internet Explorer) and mobile browsers (iPhone, iPad, Google, Samsung, etc.), the EveryStep Web Recorder supports virtually anything rendered in a browser, regardless of the technologies used, such as AJAX, Java, HTML5, Flash, PHP, Ruby, in addition to others.

These scripts can then be uploaded into the LoadView platform and replayed by a virtually unlimited number of concurrent users or setup scripts to run at specific intervals so you can be alerted if errors occur, ensuring that everything is running properly.

Try LoadView for 30 days!

No credit card, no contract.

The Benefits of Load Testing 

The purpose of load testing is to simulate the expected load that your website, application, or system should be able to manage on a regular basis, without experiencing major degradation. There may be instances where systems may experience the occasional slowdown due to an unexpected increase in users, but the system should be able to recover and resume normal operating performance within an expected timeframe.

Global Network

  • Decrease page load times: Obviously, speed is key when it comes to the user experience and a slow site or application will make customers impatient, or completely leave your site. If there are pages that are critical to the business, load testing can help determine the specific issue and help WebOps teams to prioritize the impacted pages and remedy the issues to minimize the negative impact to revenue.
  • Uncover Bottlenecks: Load testing an application or site in the development phase can uncover common bottlenecks, such as CPU, memory, and network utilization, allowing developers to address these issues before pushing code or applications into production.
  • Geographic Locations:  If you know where the majority of your customers come from, setting up load tests to run from those locations can identify specific issues that may be impacting those visitors. This ensures that everyone can access your site, no matter where they come in from, and the user experience is consistent around the world.
  • Establish Service Level Agreements (SLAs):   Capacity Planning helps to determine what hardware and software resources are needed for running an application, within a set of pre-defined requirements.  A load test can assist with predicting how an application will perform under a heavier load and if investing in additional infrastructure will be necessary in the future. 

The Benefits of Using LoadView for Load Testing

Your customers and users expect your sites and applications to be reliable, and fast. If they’re not, they’ll quickly find an alternative. Organizations that understand the importance of offering a solid customer experience know how valuable load testing is to their bottom line, however, not all companies have the necessary resources, teams, infrastructure, or time to carry out these tasks.

The LoadView platform is an on-demand, cloud-based solution that removes the need for investing in additional infrastructure and eliminating the time-consuming challenges of having to create virtual load injectors from multiple points around the globe.

Other benefits of LoadView include:

  • Protocol, headless browser, and real browser-based testing
  • Real browser-based scripting with the EveryStep Web Recorder
  • Advanced scripting in 40+ desktop/mobile browsers and devices
  • Test from multiple global locations
  • Scale from dozens to thousands of virtual users
  • Measure response time as perceived by users
  • Reuse load testing scripts for uptime monitoring
  • Pay for what you use, no long-term contracts
  • Support is available 24 hours a day, 7 days a week

These benefits set LoadView apart from other load testing solutions on the market today and puts the control of load testing into the hands of the user.

Load Testing Best Practices

Your website and applications are critical to the success of your business. It’s typically the first thing that customers will see, and if it is at all sluggish or goes down, they’ll find another place to go. The faster your pages load, the more likely customers will stay – and return in the future. Load testing your website and applications ensures that they will function under anticipated loads and gives insight into any errors that may be affecting performance. We’ll discuss six best practices that you can implement to maintain a great user experience.

Load Testing Technology

 

  1. Identify business goals and objectives. Consider what the other departments within your organization, like marketing, operations, and project managers believe the performance goals for the website or application are. And separately, ask them what they think the goals of the load testing effort are. You may find that their questions or concerns are aligned, or not aligned, with what you think are important within the scope of the project, but nonetheless, it serves to ensure you’re covering your bases to deliver an excellent user experience.
  2. Determine metrics/what to measure. There’s no standard list here as it will depend on the application, mix of technologies used, and environment, but some of the more common criteria include user perceived response time, response time by specific geography, resource utilization (CPU, memory, disk, bandwidth), number of errors, maximum user load, and other business performance metrics.
  3.  

  4. Design a load test. When designing a load test, you will want to determine a few factors, such as how much load to test, determine what transactions will be included, and what combination or sequence they will take. along with. If you don’t’ know where to start, you may need to engage other internal departments, such has IT or marketing, in order to collect historical data on previous and/or similar applications, such number of concurrent users, peak sessions in a given hour, page views, etc., from an analytics tool. Another great spot to look for information can be your competition. The competitors within your industry may have published information or public press releases about their specific customer metrics. This might give you a baseline to start your load tests from. Other factors to consider, especially for web applications, are specific navigation paths, delays, browsers/devices used, and geography. The bottom line is to create a test that best matches your customer’s environment.
  5. Make load testing part of the agile development process. In the past, performance testing was typically done towards the end of a development project. This resulted in errors and issues being detected later in the process, which meant developers had to go back through the code and fix issues, which typically delayed the release. The agile method focuses on smaller, incremental tests that are carried out earlier in the development cycle, any issues can be remedied during the process.
  6. Always keep the user experience in mind. Customer satisfaction is critical to the success of your business. That’s the whole point to load testing your website and applications. As stated before, the more you can do to ensure your site and applications perform well, the more likely customers will revisit a site or re-enter an application.

How to Choose a Load Testing Tool 

 

There’s no end to the amount and variety of tools and platforms in the market today, with a variety of features. From platforms that leverage open-source only tools like BlazeMeter, to headless browser only solutions like Phantom JS, or platforms that offer multiple user simulations, such as LoadView. Choose a load testing platform that fits your needs and requirements.

It’s really going to depend on your business needs, objectives, environment, and budget. With that in mind, the tool you choose should, at a minimum, be able to determine if your site or application will stand up to real-world conditions. Some of the questions and criteria you should ask yourself when choosing a load testing tool should include the following:Growth Chart

  • Is it easy to use? Is it complex to setup?
  • Quickly create test scripts and execute a load test
  • Support for the most frequently used browsers and/or devices
  • Utilizes real browser-based user simulations
  • Reuse load testing scripts to monitor sites and application in production
  • No long-term contracts, pay for only what you need and use
  • Collect and report on the metrics you’ve identified
  • Generate the amount of load you need
  • Simulate real user-based transactions
  • Dedicated support and/or knowledge base

One major consideration that we’ve touched on is if you will need to measure client-side activity, or more specifically, Web 2.0 technologies. This is important when it comes time to simulating user actions, such as navigating, clicks, entering date within forms, etc. If this is the case, the tool you choose should be able to replicate this as close as possible using real browsers, because that’s what your users are going to be using. Additionally, you need to also consider where the majority of your users located. Geographic location plays a huge part of the customer experience, and if disregarded, will negatively affect the user experience.

This is where the LoadView platform sets itself apart from other tools on the market. Its strength comes from being able to be simulate multiple user simulations. While primarily used for creating load test scripts for real browser-based user simulations for today’s web applications like AJAX, Flash, HTLM5, JavaScript, and other RIAs, it can also be utilized to simulate protocol-based and headless-browser based testing. Additionally, the platform can spin up multiple cloud locations at once to assess performance through specific geographic locations. Furthermore, the scripts you create for your load tests can be integrated into the monitoring platform to regularly audit uptime once your site or application goes into production.

Flexible. Scalable. Powerful.

All from one convenient load testing solution.

Load Testing FAQ – All Your Questions Answered

Is a stress test the same thing as a load test?

A stress test is simply a load test that attempts to pushes a system beyond its limits and causes the system to break in some fashion.  While stress tests can be considered a sub group of load tests, not all load tests can be considered a stress test.  A load test with the purpose of capacity planning may be run with a known maximum number of simultaneous users that the website infrastructure is supposed to be able to handle, thus not causing the website infrastructure to fail.

The definition of load testing a website is generating a specified amount of load on a website.  Typically load tests are performed in a fashion that imitates real users visiting the website.  More advanced load tests may perform a series of steps on the website such as clicking on key elements, buttons and fields and navigating through the site.

What is load testing in software?

Load testing software consists of generating user load on a software system.  As software systems can be very complex with many layers and components, software load tests may consist of many different types of load tests.  Software load tests may also run on a system or they may isolate one or more components of the software architecture.  Such components can include user interfaces, APIs, database connections or even underlying hardware such as servers, routers, firewalls, and load balancers.

Software may be built on a variety of platforms from traditional windows forms to java applets and web applications.  Load testing windows forms applications may require a very different testing infrastructure than load testing web applications.  Web applications may be testable from external environments if the application is on a public facing website while windows forms must typically be installed on one or more local computers to perform a test.  In the case of some local applications you can still perform a load test by simply bypassing the user interface and making calls directly to the underlying APIs, databases, or data access layers.  How you chose to load test software really depends upon what aspects you are concerned about at the time of the load test.

What is load testing in .NET? What is load testing in Java?

Load testing .NET applications can refer to several different types of load tests because .NET (typically C#) is used on the back end for both windows form or desktop applications and for web applications.

Load testing in Java can also refer to several different types of tests as Java can natively be run in many different environments on Java virtual machines.  Java applets can also be run from a website.

For both .NET and Java load testing you may want to use a load testing suite to setup different load tests that can be repeatedly run with different settings.  Such software suites or services often integrate with code management and automation software such as Jenkins.

What is load testing in QA? What is performance testing in software testing?

Load testing in QA means you are applying a certain number of simultaneous users to a software system during quality assurance.  Load testing for quality assurance ensures that each iteration of the software is capable of handling at least a minimum number of simultaneous users, and at most, it will identify the maximum number of simultaneous users a software system can handle.  QA load testing is often performed using software automation such as Jenkins within an environment using continuous integration.

What is the meaning of throughput in performance testing?

When running performance tests, in general, throughput refers to the amount of data over time that can be transferred between the front end of the application and the back end. Specifically, throughput in performance testing can refer to several different choke points such as network bandwidth, database I/O, simultaneous users, maximum memory constraints, and disk reads and writes.  Each of these components could theoretically become a bottleneck for the throughput of data from the client to the server and vice versa.  Monitoring the throughput of these various bottlenecks as the load applied to the software increases can identify causes of system speed degradation.

What is load testing in JMeter? What is load testing in LoadRunner?

JMeter is an open source application by Apache for testing applications.  JMeter can generate heavy load on an application to analyze performance with different types of load on applications including web applications, web services and databases queries among many other protocols.

LoadRunner is a tool for application testing by HP. LoadRunner can be used to test different layers of an application by generating messages directly to a service or by simulating user interaction with a UI by recording scripts of mouse movements and button presses and keyboard entries.  LoadRunner can be used to test a variety of applications including Microsoft .NET and Java applications. LoadRunner can also interface directly with databases and even network protocols.

However, LoadView is superior to both JMeter and LoadRunner in nearly every way.

What is load testing in SoapUI? What is a spike test?

SoapUI is used to perform functional tests on Application Performance Interfaces.  SoapUI can test both SOAP and RESTful APIs.  Load testing an API creates multiple connections or requests to the API in order to measure the performance under a different number of simultaneous requests to the SOAP or REST API server.

A Spike test is a specific type of load test that performs a rapidly increasing number of simultaneous requests in order to simulate large spikes in traffic on a system. Spike tests can be used to load test an API or application for bottlenecks during periods of rapid growth or high numbers of concurrent users.  Performing spike tests before a high number of simultaneous users actually hits a website or application can identify the bottlenecks that could cause the site to crash or the application performance to slow to a crawl.

LoadView can test APIs and is superior to SoapUI in a lot of ways.

Who is responsible for load testing? Who performs load testing?

Often times a QA team, DevOps, or sometimes even marketing is responsible for load testing their websites or web applications.  QA typically handles the majority of testing when it comes to software and web apps in a testing environment while DevOps needs to be sure that the software runs properly on production hardware.  Marketing is in charge of driving high numbers of users to a website or product, and therefore will be concerned with whether the website infrastructure can handle high loads from events such as product releases or sales.

Load testing is typically performed by these same groups- QA, DevOps and marketing.  Sometimes load testing can also be performed by the developers or development team to guarantee the application will scale up under heavy loads.  It may, however, be the case that the dev team simply does not have access to the resources to spin up enough machines to perform a proper load test.

Which load testing tool should I use? Which is the best load testing tool?

There are a variety of load testing tools available, and they basically break down into to categories: free and paid. The paid tools are obviously more robust and have a wider range of data and features, while the free tools are often open source and are available at no cost.

LoadView is a comprehensive, load testing suite and we believe the best load testing tool on the market.

When should I start load testing? When is load testing done?

Start load testing before you think you need it.  By the time many people start load testing, there is not enough time to make the necessary changes to help handle additional load.

If load tests are performed at major milestones in the development process with proper foresight, the web infrastructure should have much less problem scaling to handle heavy load once it is in production (assuming action is taken to optimize performance as a result of the load test).

Load testing should be performed before any major event that could potentially bring large amounts of simultaneous traffic to a website.  Ideally load tests should be performed in a production environment during off peak hours before a public release of any new code or updates to a website or web application.  This should be completed well enough ahead of the public release to allow for last minute tweaks to the system if the load test fails.

Often times, a load test is performed right before the release of a new product, a new campaign, a major event or a system update.  Since the goal of such a load test is to ensure the website infrastructure can handle expected load, this may not give you enough time to react to the results of the load test.

Why perform load testing? Why is load testing important?

You want to perform load tests so that you are not caught off guard when real load is placed on your website.  You should know what the maximum number of simultaneous users that your servers can handle is, and you should be prepared with what to do if that number is reached.  If you are not prepared for heavy traffic, there is a good chance you will end up losing business due to your website being slow or even crashing when too many visitors are on the site at once.

Load Testing is important because it identifies points of failure in your system, and can also show you how performance of your site degrades as more simultaneous users are added.  If you know what your peak traffic should be, load testing gives you greater insight into how your web application or site will perform once that level of traffic is reached.

What is the objective of load testing?

Load testing is typically performed for three reasons:

  • Capacity Planning

If you have a rough idea of the size and volume of traffic your website should be able to handle, you can setup tests to slowly increase until you reach that limit.  This type of load test can help you plan for expected capacity of the website.

  • Identifying critical failure points

Often times you just want to know how many simultaneous users can hit your web application until there is a critical failure.  At this point you can troubleshoot the failure to identify the root cause and hopefully mitigate the failing component or at least flag the bottleneck for future fixes.

  • Test whether new changes introduce scalability bugs or other unforeseen consequences

Every time you update anything in production there is a potential to introduce bugs or other unintended changes.  Load testing can help eliminate some of those potential liabilities by running a load test after every code or content update.

What is performance testing?

Performance testing typically gauges different metrics related to the performance of a website or web application.  Website performance testing can measure page load speeds, time to first byte, time to interaction and other performance metrics.  Performance testing as it relates to load testing typically records how these performance metrics are impacted by adding additional load to the system.  Even if you’re using a giant list of application monitoring tools, there are still a number of variables that can affect the results of performance testing, from the underlying hardware running the system (including CPU, RAM, dick I/O), available bandwidth, database reads and writes, and complexity of the code used in the system.  After running a performance test, you may be able to identify which components impacted the results and tweak those components to improve the performance of the web site, and this should be true for various types of web applications.

What are the different types of performance testing?

Types of performance testing include:

  • Smoke testing

Smoke testing performs low level background tests to ensure the system is capable of handling the bare minimum requirements.

  • Baseline speed testing

Baseline speed testing establishes standard baseline performance metrics.  These baselines are often used to compare more advanced load tests when monitoring differences in performance under load.

  • Scalability testing

Scalability testing typically introduces more and more users to the system over time to measure whether the system can scale up to meet user needs as load increases.

  • Stability testing

Stability testing may include a number of different scenarios that should always work, even after a system is changed.  If stability tests begin to fail then either the system has become unstable or the stability test needs to be adjusted to handle changes to the system.

  • Capacity testing

Capacity testing identifies the maximum capacity of a website such as the highest possible number of simultaneous requests and then ramps up to that number by adding more users over time.  If the system successfully responds to all requests within the required time, the system has successfully passed a capacity test.

  • Stress testing

A Stress test takes a capacity test a step further and continues to increase the number of simultaneous users until the system performance degrades or completely fails.

  • Spike testing

A spike test sends large bursts of traffic to a website to see if the servers can handle the bursts of traffic.

  • Endurance testing

Endurance tests send various amounts of traffic to a web application over longer periods of time to see if any anomalies arise due to extended use of system resources.  Sometimes bugs can appear during an endurance test due to memory overflow, improper garbage collection or a number of other reasons.

  • Individual component testing

Individual component testing isolates individual parts of a system, such as a web service or a database call and performs various tests on that component outside of the rest of the system.  A component test may also test 1 aspect of a system such as a database search, or a database write.

When should I use performance testing?

All the time.  Performance testing should be used during the development of web applications, during quality assurance, after new releases, prior to new product releases, prior to marketing initiatives, and pretty much any time something about the system is going to change (to learn more about this, visit dotcom-tools.com/blog/list-of-application-monitoring-tools-apm).

When is performance testing not required?

When you do not care about the quality of your user experience, when no one is going to visit your website, or when you do not care if your website is up or down.  If a user interface is constantly changing it may not be practical to setup automated performance tests because you would have to constantly change the tests themselves.

What is the performance testing process?

The performance testing process depends upon how thoroughly you wish to test your website.  It can be as simple as a one-time test to see how fast your web page loads, or to determine the fastest web hosting option for your business, or it could be as intimate as an automated set of tests built into your source code management platform that runs every single time an update is checked in to the system.  For websites that experience high volumes of traffic, performance tests also consist of regular load testing that applies increasing numbers of simultaneous users to both predict capacity issues as traffic increases and to identify bottlenecks or limitations of the system under extremely heavy loads.

How can performance testing be automated?

Performance testing can be automated using a number of third party solutions.  These solutions typically allow you to build test cases and schedule the test cases to run based upon a number of factors from regularly scheduled occurrences every day to automatic instances triggered by code check-ins.   Many software development tools such as Microsoft Visual studio Team Foundation Server also contain components or add-ins that can be used to perform automated performance testing.

How do performance testing tools work?

Performance testing tools work by performing actions upon a website or application and recording the results.  Many different metrics can be recorded by a performance testing tool such as page load times, time to interact, and responsiveness to user interaction.  Depending on what part of the application performance you are measuring, different tests can be run to focus specifically on certain elements such as reading data from a database, running JavaScript, or loading images from a file store.

Why should we automate performance testing?

Automating performance testing frees up the tester to perform more advanced test, and spend more time analyzing results. Automated tests can be repeatedly run after every code change with minimal user interaction. Automated testing can often catch issues before end users experience a problem, because automated tests are running on a consistent basis.

What is the performance testing life cycle?

The performance testing lifecycle describes the process of arriving at one or more of a series of tests that should be performed to measure performance metrics of an application over time.

The performance testing lifecycle begins while a website or application is still in development.

Up front, you need to determine the goal of the application.  Identify your audience, and the size of the audience.  Identify the ideal average number of users that might simultaneously use the product and then identify the maximum number of simultaneous users during a heavy load.

Next you need to identify how the average user will use the application, and write out scripts for some of the common use paths of a user.  You will also want to include the most demanding possible use as one of your scenarios.

Next you need to establish benchmark performance results for each scenario by simply running and recording the results of each individual test under ideal conditions.

As soon as a prototype or first draft of the application has been built, performance testing should be performed to detect limitations in the system as early as possible.  As a product matures and is deployed into a production environment performance testing should be run to gauge average performance metrics under different scenarios such as load spikes, steady increases in traffic, and extreme endurance load (load over an extended period of time).  Performance tests should continue to be run with each change to the system to ensure there is no degradation in system performance.

As the results of each scenario are analyzed, performance testing can help evolve the infrastructure to support the most extreme load that can be expected by identifying and eliminating bottlenecks in the system.

How do I do performance testing on for mobile applications?

Performance testing on mobile applications can be performed in the same manner as performance testing for desktop or web based applications.  Typically, the performance tests are not run from actual mobile devices.  Instead they are often run in a simulation by an emulator.  If the application is simply local and does not require a network connection, then load testing may not be a very valid form of performance testing on a mobile application.  For an application that connects to a remote backend, spinning up a number of simultaneous users on a mobile application can generate load with the potential to slow the system down.  Mobile performance testing may also throw a curve ball into the performance metrics due to the type of connection the mobile user has to the internet.  If the user is in a geographic zone where high speed data is not available, that can also limit the speed of a performance test.  Some load testing systems allow you to select what type of connection to emulate during a load test.  This is done by artificially limiting the bandwidth used by the application.

How is load testing performed?

Load testing is most often performed using automated systems to generate requests to a server or simulate real users in a system.  It can be performed internally using hardware and software within your own network or it can be performed externally with 3rd party testing systems.  Load tests measure the performance and response times of a system as load on a system increases.  Load tests are most appropriate to perform on a production system to measure the real responsiveness of the system under simulated conditions.  Load tests can be scheduled or run on demand but are typically planned for a time when traffic to the site is low so that any problems caused by the heavy load will affect the least amount of actual customers.

How do I load test a desktop application?

Desktop application load testing may be slightly different than load testing for a web-based application.  If the entire desktop application resides on the users machine and does not contact a central server or database, the effects of running multiple users at once will likely not have much of an effect on the performance of the application.  If the application communicates with a server or database, then load testing may be a viable means of testing performance.  Some types of load testing might simply simulate the desktop app in order to send requests without actually running the front end GUI.  These tests are much more scalable than instantiating multiple GUIs due to the need for system resources on the client machines.

Can load testing be done manually?

Load testing can be done manually by simply having a number of real users active in a system at once, however manual load testing will likely not return as valuable data as automated load testing that can gather and aggregate all of the performance metrics for the system.

How to perform load testing of a website:

First, establish what aspects of the system you are going to test.  Based upon these requirements, select a load testing platform that is capable of performing every aspect of the tests you wish to perform.  Once you have familiarized yourself with the testing platform of your choice, you can design scripts or load scenarios that accurately simulate the use cases to be tested.  Some scenarios may simulate real users in the system while others may simply generate massive amounts of simultaneous GET requests. The type of test depends upon your end goal.  If you are trying to simulate real users in the system to plan for future capacity, you might run a very different load test than someone that is looking to identify how many users a system can handle before it fails.

After establishing your load scenarios you need to figure out your target load numbers as well as how and where you are going to initiate the load from.  Some systems will generate the load right from your local machine while others may require multiple machines in order to generate large numbers of simultaneous users.  Many systems allow you to spin up multiple scenarios at once per machine and even help you spin up multiple machines in the cloud.

Once you initiate the load test you probably want to record and pay attention to the performance counters on the servers hosting the website so you can see if any of the common monitors discover bottlenecks such as CPU, RAM dick IO or bandwidth.  Some load testing systems have components built into the platform that you can install on the servers in order to capture this data and correlate it to the number of simultaneous users hitting the site and the average response times of those users.  Large increases or spikes in the response times may be a good indicator that something was running less than optimal in the system.  You can often use these indications to drill down and find the exact cause for the slowdown.

How to do a load test using Selenium & JMeter:

Selenium and JMeter are two examples of software that can be used to perform load testing.  Selenium can record user actions within a browser and replay them.  Selenium scripts can also be edited using different programming languages and testing platforms.  Selenium Grid allows you to perform multiple tests at once from multiple machines.  While selenium was not designed strictly for load testing, it can be used to generate scripts that integrate directly with a number of load testing platforms.

JMeter is an open source platform by Apache designed specifically for load testing web applications.  JMeter does not work on the browser level, it simply works at the protocol level.  While it appears to be a browser from the web servers perspective, it cannot execute all actions that a browser could perform such as actually rendering the page and executing JavaScript.  JMeter is good for generating requests on a website from many simultaneous users during a load test.

How load testing tools work:

Most load testing tools let you record or write a script that interacts with a website or application.  Those scripts are then put into test scenarios or scheduled load tests.  You then identify the scope and the quantity of users required in the load test, and the length of time to run the test.  Some tests allow you to scale up the load over time while others my simply identify the maximum number of simultaneous users in the test and spin them all up at once.

How to load test single page applications:

Single page applications can be trickier to load test in terms of measuring KPIs because the page doesn’t necessarily reload each time the user performs an action.  Some load testing platforms will let you measure time between actions such as button clicks and the resultant data displayed on the screen while other systems can only measure the total time it took to complete a script.

Take Your Load Testing to the
Next Level

Experience unparalleled features with limitless scalability. No credit card, no contract.