Load Testing
What is Load Testing & Why is Load Testing 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 load testing generally refers to 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 other types of testing.
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 recent survey conducted by Veeam, a global leader in the backup and data management space, with over 1,500 IT professionals found that the cost of one hour of downtime for high priority applications was over $84,000. Additionally, the average length of downtime was 79 minutes.
If you consider specific industries that depend on high-volume transactions, like financial services or large online retailers, the impact could likely be more significant. Also indicated in their survey were the effects on customers and visitors, such as a decline in customer confidence, tarnished brand integrity, drop in stock price. So, as you can see, the importance of ensuring your applications is tested to meet performance demands cannot be overstated.
Load testing simulates real-world scenarios on your sites, applications, and systems. Through the information gathered during and after load testing, developers can measure the limits and gain insight into the metrics that can help answer questions such as the following:
- 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 over a specific period?
- What is 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 left, meaning earlier and more often in the process. Knowing exactly how much your site, application, system, or API (Application Programming Interface) can handle will help identify and uncover numerous issues, like bugs and database slowdowns, well before any code is committed into your staging environment. For example, all client-side applications should go through various tests to determine their limits and assist with improving the user experience. If application performance issues go undetected in the production environment, the cost, time, and resources involved to have to go back and try to determine where the issues lie can be steep.
Load 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 managing, investing, or maintaining any additional testing infrastructure. Load testing can become a time-consuming process. LoadView manages these tedious tasks, like instantiating generators and setting up global distributed agents. This gives developers more time for designing, executing, and analyzing their tests.
Depending on the specific need, use case, or technology of the system being tested, the LoadView platform can run different user simulation types, for example, HTTP/S and real browser-based simulations.
HTTP/S-based simulation: Although protocol-based simulations are considered a more traditional approach in load testing due to modern web application frameworks and technologies, protocol-level scripts are perfect for component level tests in CI/CD environments and have a low footprint on injection machines.
Real browser-based simulation: When you need to mimic real user behavior and have web applications that utilize specific dynamic web application frameworks and technologies, such as Angular, AJAX (Asynchronous JavaScript and XML), JavaScript, Flash, React, and many others. Using a real browser is key. Using this simulation allows developers to verify the site’s functionality and speed as perceived by a user. You would rather catch errors and bottlenecks and fix them in the test environment rather than the live production environment.
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 submissions, shopping cart process, text inputs, as well as image and text validation.
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 web application technologies and frameworks used, like AJAX, Angular, Java, HTML5, Flash, PHP, Ruby, as well as many others.
Additionally, the EveryStep Web Recorder allows manual editing of your scripts using your own C# code, if needed for your specific load testing requirements, and reuse them for automating test execution of other repetitive tasks in your environment. These scripts can then be uploaded into the LoadView platform and replayed by a virtually unlimited number of concurrent users. Additionally, you can setup scripts that run at specific intervals and alert you and your teams if errors occur, ensuring everything runs smoothly and properly.
No credit card, no contract.
The Benefits of Load Testing
The purpose of load testing is to simulate the expected traffic that your website, application, or system should adequately manage on a regular basis, without experiencing major degradation. There may be instances where systems may experience the occasional slowdown from an unexpected increase in users, but the system should recover and resume normal operations within an expected timeframe.
- 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 critical for driving revenue, load testing can help determine the specific issue and help WebOps teams prioritize the impacted pages and remedy the issues, minimizing the potential negative impact.
- Uncover Bottlenecks: Load testing an application or site in the development phase can uncover common bottlenecks, like CPU, memory, and network utilization, allowing developers to address these issues before pushing code or applications into production.
- Geographic Locations: If you know where most of your customers come from, setting up a test from those locations can identify specific issues impacting those visitors. This ensures everyone can access your site, no matter what geographic areas they visit from, and that their experience is consistent around the world.
- Establish Service Level Agreements (SLAs): Capacity Planning helps determine what hardware and software resources are needed for running an application, within a set of pre-defined requirements. Load testing can assist with predicting how an application will perform under heavy stress and if investing in additional infrastructure is necessary in the future.
The Benefits of Using LoadView for Load Testing
Your customers and users expect reliable and fast web pages and applications. If they are not, they will quickly find an alternative. Organizations understand the importance of offering a solid customer experience and know how valuable load testing is for their bottom line, however, not all companies have the necessary resources, teams, infrastructure, or time for carrying out these tasks.
The LoadView platform is an on-demand, cloud-based load testing solution that removes the need for investing in additional infrastructure and eliminating the time-consuming challenges of creating virtual load injectors from multiple points around the globe.
Other benefits of LoadView include:
- Protocol-level and real browser-based testing.
- Real browser-based scripting with the EveryStep Web Recorder.
- Advanced scripting support for 40+ desktop/mobile browsers and devices.
- Load curve options – load step, goal-based, and dynamic adjustable curves.
- 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 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 for the success of your business. It is typically the first thing customers will see, and if it is sluggish or crashes, they will quickly find an alternative. The faster your pages load, the more likely customers will stay – and return in the future. Load testing your websites and applications ensures they will function under an anticipated level of users and gives insight into any errors that may be affecting processes. We will discuss five of the best practices you can implement to maintain a great experience for users.
- 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 out if their questions or concerns are aligned, or not aligned, with what you think are important within the scope of the project, but nonetheless, it ensures you are covering your bases and delivering an excellent user experience.
2. Determine metrics you would like measured. There is 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 users, and other business performance metrics.
3. Design a load test. When designing a test, begin by determining a few key factors, like how much load to test, specific user transactions, and what combination or sequence they will occur in. If you do not know where to start your test, engage other internal departments, such has IT or Marketing, for collecting historical testing data from previous and/or similar applications, such as number of concurrent users, peak sessions in a given hour, page views, etc., from an analytics tool. Another great spot for information? 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 you can start your test from. Other factors for consideration, especially for web applications, are specific navigation paths, delays, browsers/devices used, and geography. The bottom line: create test scripts that best matches your user’s environment.
4. 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 would 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.
5. Always keep the user experience in mind. Customer satisfaction is critical for the success of your business. That is the whole point when load testing or API monitoring your website and applications. As stated before, the more you can 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 is no end to the amount and variety of tools and platforms in the market today, with a variety of features. From platforms leveraging open-source only tools like BlazeMeter, to headless browser only solutions like Phantom JS, or platforms offering multiple user simulations, like LoadView. Choose a load testing platform best suited for your needs and requirements.
It really depends on your business needs, objectives, environment, and budget. With that in mind, the tool you choose should, at a minimum, determine if your site or application will stand up in real-world conditions. Some of the questions and criteria you should ask yourself when choosing a load testing tool should include the following:
- Is it easy to use? Does the tool require complex setup procedures?
- Quickly create test scripts and execute a test.
- Support for the most frequently used browsers and/or devices.
- Utilizes real browser-based user simulations.
- Reuse load testing scripts for monitoring sites and applications in production.
- No long-term contracts, pay for only what you need and use.
- Collect and report on the metrics you have identified.
- Generate the amount of load you need.
- Simulate real user-based transactions.
- Dedicated support and/or knowledge base.
One major consideration we mentioned earlier is if you are measuring client-side activity, or more specifically, Web 2.0 technologies. It is very important when it comes time for simulating user actions, like navigating, button clicks, entering date within forms, etc. If this is the case, the tool you choose should replicate this as close as possible using real browsers, because that is what your users are using. Additionally, consider where most of your users are located. Geographic location plays a huge part of the customer experience, and if disregarded, will negatively affect the user experience. The LoadView solution provides users with the option to choose from over 40 load injector servers from around the world.
Creating a load testing script with the EveryStep Web Recorder
This is where the LoadView platform sets itself apart from other tools. Its strength comes from simulating multiple user simulations. While primarily used for creating load testing scripts for real browser-based user simulations for today’s web applications like AJAX, Flash, HTLM5, JavaScript, and other RIAs, it can also simulate protocol-based testing. Additionally, the platform can quickly spin up multiple cloud locations for assessing performance through specific geographic locations. Furthermore, the scripts you create for your test can be integrated into our monitoring platform for regular uptime audits once your site or application goes into production.
Shift-Left Testing and LoadView
Today’s applications are built with multiple technologies, relying on vast networks of third-party providers and CDNs. Additionally, end users can access your site or applications from anywhere in the world using different browsers, operating systems, and mobile devices, all with varying connection speeds. Response times, quality, and availability are critical factors that should be assessed before pushing applications into production.
Knowing exactly how much a site, application, or API can handle during the development and testing phase can help identify and uncover various issues, like bugs, hardware bottlenecks, and database slowdowns, well before you push your application into your production environment.
These performance metrics are necessary for assisting with capacity planning so you can meet the demands of your customers and clients. Poor performing sites and applications impact conversions, and ultimately, revenue.
Read more about shift-left testing, load testing with LoadView, and what it means for DevOps practices.
All from one convenient load testing solution.
What is load testing software?
How do you load test a software?
What are the types of load testing?
Why do we do load testing?
How long should a load test run?
Load Testing FAQ – All Your Questions Answered
Table of Contents
- Is a stress test the same thing as a load test?
- What is load testing in software?
- What is load testing in .NET and Java?
- What is load testing in QA? What is performance testing in software testing?
- What is the meaning of throughput in performance testing?
- What is load testing in JMeter? What is load testing in LoadRunner?
- What is load testing in SoapUI? What is a spike test?
- Who is responsible for load testing? Who performs load testing?
- Which load testing tool should I use? Which is the best load testing tool?
- When should I start load testing? When is load testing done?
- Why perform load testing? Why is load testing important?
- What is the objective of load testing?
- What is performance testing?
- What are the different types of performance testing?
- When should I use performance testing?
- When is performance testing not required?
- What is the performance testing process?
- How can performance testing be automated?
- How do performance testing tools work?
- Why should we automate performance testing?
- What is the performance testing life cycle?
- How do I implement performance testing for mobile applications?
- How is load testing performed?
- How do I load test a desktop application?
- Can load testing be done manually?
- How to perform website load testing
- Load testing use cases
- How to do a load test using Selenium & JMeter
- How load testing tools work
- How to load test single-page applications
Is a stress test the same thing as a load test?
A stress test is simply a load test that pushes a system beyond its limits and causes the system to break in some fashion. While stress tests are considered a sub-group of load tests, not all load tests are considered a stress test. Load testing with the purpose of capacity planning may be run with a known maximum number of simultaneous users that the website infrastructure can handle, thus not causing a website infrastructure failure.
The definition of load testing a website is generating a specified amount of load on a website. Typically, tests are performed in a fashion that imitates real users visiting the website. More advanced 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 become more complex, with many layers and components, software tests may consist of many different types of tests, including Postman load testing. 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 like servers, routers, firewalls, and load balancers.
Software may be built on a variety of platforms, from traditional Windows forms to Java applets and web apps. Load testing Windows forms apps may require a very different testing infrastructure than load testing web apps. Web apps may be tested from external environments if the app is on a public facing website, while Windows forms must typically be installed and tested from one or more local computers. In the case of some local apps, you can still perform testing by simply bypassing the user interface and making calls directly to the underlying APIs, databases, or data access layers. How you ultimately choose your load testing software really depends upon what aspects you are concerned about at the time of testing.
What is load testing in .NET and Java?
Load testing .NET applications can refer to several different types of 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 run in many different environments on Java virtual machines. Java applets can also run from a website.
For both .NET and Java load testing, you may want a testing suite for setting up different tests that can run repeatedly with varied settings. Such software suites or services often integrate with code management and automation software like 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 on a software system during quality assurance. Load testing for quality assurance ensures 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 like Jenkins within an environment using continuous integration.
What is the meaning of throughput in performance testing?
When running a performance test, throughput refers to the amount of data transferred between the front end of the app and the back end over time. Specifically, throughput in testing could mean factors like 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 increases can help 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 web apps. JMeter can generate heavy load on different types of apps, including web apps, web services, and databases queries, among many other protocols. One thing to remember about JMeter is that it operates at the protocol-level only. This means that if you are looking to carry out performance tests that include client-side interactions, JMeter is not the tool for this job. It cannot execute JavaScript or AJAX requests. Additionally, since JMeter must be installed on a local device, you can only scale your tests to a certain point. You cannot run large-scale tests. For these reasons, you should avoid JMeter and consider a solution like LoadView, which supports web application frameworks and technologies, real browsers, and fully manged load injectors.
LoadRunner is a tool for testing apps. LoadRunner can be used for testing different layers of an app 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 test a variety of apps, including Microsoft .NET and Java apps. 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 for performing functional tests on APIs. SoapUI is used for both SOAP and REST API testing. Load testing an API creates multiple connections, or requests, to the API and measuring the performance under a different number of simultaneous requests via the SOAP or REST API server.
A spike test is a specific type of performance test that performs a rapidly increasing number of simultaneous requests in order that simulates large spikes in traffic on a system. A Spike test can be used for load testing an API or app for bottlenecks during periods of rapid growth or high numbers of concurrent users. The goal of spike testing is detecting and analyzing abnormalities within the software or app as demand is suddenly increased or decreased. Performing spike tests before a high number of simultaneous users hit a website or app can identify the bottlenecks that could cause the site or app to slow or crash. Spike testing can also give insight on how a program or app responds between spikes of activity.
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 apps. QA typically handles the majority of testing for software and web apps in a testing environment, while DevOps ensures the software runs properly on production hardware. Marketing is in charge of driving high numbers of website visitors, and therefore concerned with whether the website infrastructure can handle high visitor traffic from events like product launches or sales promotions.
Load testing is typically performed by these same groups – QA and DevOps. Sometimes, load testing can also be performed by the developers or development team, making sure the app will scale up under heavy demand. However, it is possible the development team simply does not have access, or the resources, for spinning up enough machines for proper testing.
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 two 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 the best load testing tool in 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 for making the necessary changes or getting help for handling additional tests.
If tests are performed at major milestones in the development process with proper foresight, the web infrastructure should have much less problem scaling and handling heavy load once it is in production (assuming action is taken for optimizing infrastructure as a result of the test).
Load testing should be performed before any major event that could potentially bring large amounts of simultaneous traffic to a website. Ideally, a test should be performed in a production environment during off-peak hours, before a public release of any new code, or website or web app updates. This should be completed well enough ahead of the public release, allowing for last-minute system tweaks should the test fail.
Often, load testing is performed right before the release of a new product, a new campaign, a major event, or a system update. Since the goal of load testing is ensuring the website infrastructure can handle an expected number of users, this may not give you enough time for responding to load testing results.
Why perform load testing? Why is load testing important?
Perform load tests so you are not caught off guard when real demand is placed on your website. You should know what the maximum number of simultaneous users your servers can handle is, and you should be prepared if that number is reached. If you are not prepared for heavy traffic, there is a good chance you will end up losing business if your website is slow, or even crashes, when too many visitors hit your site at the same time.
Load testing is important because it identifies points of failure in your system and can also show you how 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 app 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 handle, you can set up tests that slowly increase load until you reach that limit. This type of load testing can help you plan for the expected capacity of the website.
- Identifying critical failure points
Often, you might just be looking for how many simultaneous users can hit your web app until there is a critical failure. At this point, you can troubleshoot the failure and identify the root cause, hopefully mitigating the failing component, or at least flag the bottleneck for future fixes.
- Test whether new changes introduce scalability bugs or other unforeseen consequences
Each time you update anything in production, there is a potential for introducing bugs or other unintended changes. Load testing can help eliminate some of those potential liabilities by running a 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 testing measures page load speeds, time to first byte, time to interaction, and other metrics. Performance testing, as it relates to load testing, typically records how these metrics are impacted by adding additional demand onto the system. Even if you are using multiple app monitoring tools, there are still several variables that can affect the test results, from the underlying hardware running the system (including CPU, RAM, disk I/O), available bandwidth, database reads and writes, and complexity of the code used in the system. After running a test, you can identify which components impacted the results and tweak those components for improving website performance. This should be true for various types of web apps as well.
What are the different types of performance testing?
Types of performance testing include:
- Smoke testing
Smoke testing performs low-level background tests, ensuring the system can handle the bare minimum requirements. Smoke testing is often carried out during the initial stages of software development. By identifying errors and defects earlier within the cycle, teams can release the software in a more efficient manner and avoid costly (and time-consuming) last-minute defects.
- Baseline speed testing
Baseline speed testing establishes standard baseline metrics. These baselines are often used for comparing more advanced tests when monitoring differences occur in performance under stress.
- Scalability testing
Scalability testing typically introduces more and more users onto the system over time for measuring whether the system can scale up to meet user needs as load increases.
- Stability testing
Stability testing may include a few different scenarios that should always work, even after a system is changed. If stability tests fail, then either the system has become unstable, or the stability test needs adjustment in order to handle system changes.
- Capacity testing
Capacity testing identifies the maximum capacity of a website by testing the highest possible number of simultaneous requests and then ramps up 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
Like a spike test, stress testing takes capacity testing a step further and continues increasing the number of simultaneous users until the system degrades or completely fails.
- Spike testing
Spike testing technically falls under the category of a “load test,” but there are some differences between the two. A spike test sends large bursts of traffic to a website and sees if the servers can handle the bursts of traffic. Traditional load testing is typically performed over varying amounts of time with varying amounts of traffic, but within the guidelines of normal user conditions, not just sudden increases or decreases of traffic.
- Endurance testing
Endurance tests send various amounts of traffic at a web app over longer periods of time and checks if any anomalies arise due to extended use of system resources. For example, sometimes bugs can appear during endurance testing because of memory overflow or improper garbage collection.
- Individual component testing
Individual component testing isolates individual parts of a system, like a web service or a database call, and performs various tests on that component outside of the rest of the system. Component testing may also test only one aspect of a system, such as a database search or a database write.
When should I use performance testing?
All the time. Testing should be used during the development of web apps, during quality assurance, after new releases, prior to new product releases and marketing initiatives, and pretty much any time something about the system changes. Learn more about the various monitoring tools in the market today by reading our article where we compare the top 15 application monitoring tools.
When is performance testing not required?
When you do not necessarily care about the quality of your user experience, when you do not have large numbers of users visiting 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 for setting up and running automated tests because you would constantly be changing the tests themselves.
What is the performance testing process?
The testing process depends upon how thoroughly you wish to test your website. It can be as simple as a one-time test for seeing how fast your web page loads, determining the fastest web hosting option for your business, or as complex as automating a set of tests built into your source code management platform that runs every time an update is checked into 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. This helps predict capacity issues as traffic increases, identify bottlenecks, and understand limitations of the system under extremely heavy stress events.
How can performance testing be automated?
Performance testing can be automated using several third-party solutions. These solutions typically allow for building and scheduling test cases based upon many factors, from regularly scheduled occurrences every day, to automatic instances triggered by code check-ins. Many software development tools, like Microsoft Visual Studio Team Foundation Server, also contain components used for performing automated testing.
How do performance testing tools work?
Performance testing tools work by performing actions upon a website or app and recording the results. Many different metrics can be recorded by a testing tool, such as page load times, time to interact, and user responsiveness. Depending on what part of the app you are measuring, different tests can be run, specifically focusing 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 testing frees up the tester so they can perform more advanced tests 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 consistently.
What is the performance testing life cycle?
The performance testing life cycle describes the process of arriving at one or more of a series of tests that should be performed for measuring metrics of an application over time.
The performance testing life cycle begins while a website or application is still in development.
Initially, 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 stress event.
Next, identify how the average user will use the application and write out scripts for some of the common paths of a user. Include the most demanding possible use as one of your scenarios.
Next, establish benchmarks 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, 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, testing should be performed to gauge average performance metrics under different scenarios, such as load spikes, steady increases in traffic, and extreme endurance load (load over an extended time period). Testing should continue with each system change, ensuring there is no system degradation.
As the results of each scenario are analyzed, testing can help evolve the infrastructure for supporting the most extreme demand that can be expected by identifying and eliminating bottlenecks in the system.
How do I implement performance testing for mobile applications?
Performance testing mobile apps can be performed in the same manner as testing for desktop or web-based applications. Typically, the tests are not run from actual mobile devices. Instead, they are often run in a simulation by an emulator. If the app is simply local and does not require a network connection, then load testing may not be a very valid form of testing for your mobile app.
For an app that connects to a remote back-end, spinning up a few concurrent users on a mobile app can generate load, potentially slowing the system down. Mobile performance testing may also throw a curveball into the performance metrics due to the type and quality of the user connection. If the user is in a geographic zone where high-speed data is not available, that can also limit the speed of a test. Some load testing systems, like LoadView, allow for emulating a connection type for testing. This is done by artificially limiting the bandwidth used by the app.
How is load testing performed?
Load testing is most often performed using automated systems for generating requests from a server or simulating real users in a system. Load testing can be performed internally using hardware and software within your own network or it can be performed externally with third-party test systems. The test measures the performance and response times of a system as demand on a system increases. Tests are most appropriate when carried out in production, measuring the real responsiveness of the system under simulated conditions. Tests can be scheduled or run on-demand, but tests are typically planned for a time when traffic is low so that any problems caused by the heavy traffic will affect the fewest number 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 user’s 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 testing might simply simulate the desktop application, sending requests without running the front-end GUI. These tests are much more scalable than instantiating multiple GUIs, since the need for system resources on client machines is low.
Can load testing be done manually?
Load testing can be done manually by simply having many 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 the metrics for the system. Additionally, when you consider the cost and time of the individuals needed to carry out manual testing, the opportunity cost may be far greater than simly using a cloud-based load testing solution like LoadView.
How to perform website load testing
First, establish what aspects of the system you want to test. Based upon these requirements, select a load testing platform 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 scenarios that accurately simulate the defined use cases. Some scenarios may simulate real users in the system, while others may simply generate massive amounts of simultaneous GET requests. The type of testing depends upon your end goal. If you are simulating real users in the system for future capacity planning, you might run very different load testing than someone identifying how many users a system can handle before it fails.
After establishing your load testing scenarios, decide on your target load numbers, as well as how and where you are initiating the load from. Some systems will generate the load right from your local machine. Others may require multiple machines for generating large numbers of simultaneous users. Many systems allow for spinning up multiple scenarios per machine and even help you spin up multiple machines in the cloud.
Once you initiate your test, record and pay attention to the performance counters on the servers hosting the website. This is where you will see common bottlenecks, like CPU, RAM, disk I/O, or bandwidth. Some load testing systems have components built into the platform that you can install on the servers for capturing this data and correlating it to the number of simultaneous users hitting the site, along with the average response times of those users. Large increases or spikes in the response times may be a good indicator something was running at less than optimal in the system. You can often use these indications for drilling down and finding the exact cause of the slowdown.
Load testing use cases
Social Enterprise – Web Pages: A well-known annual campaign to end child poverty needed to load test up to 1-milion simultaneous users accessing their website homepage and donation page in anticipation of their campaign. With HTTP-based user load, a test of this magnitude was easily accomplished at a reasonable price-point, ensuring a successful campaign for the organization.
Online Vehicle Marketplace – Web Application: An online application for users to sell a Tesla required capacity testing up to 1,000 new listings per day, capable of searching over 500,000 listings simultaneously across the platform. Here, LoadView’s web application scripting provided the ability to step through the application with dynamic filtering, load testing the database under excessive user simulated load. While a broad international geographic distribution was not required, load was distributed across 5 datacenters in the USA to provide a more realistic capacity test scenario.
SaaS Platform – Web Services / APIs: A B2B SaaS platform for connecting third party apps needed to load test their API connectors behind the firewall, from their private network, pre-beta release. LoadView worked with their network security team to install a private agent on their internal network and run load tests via whitelisted static proxy IPs. The QA team was successfully able to benchmark the new platform, ensuring confidence in the public beta release.
How to do a load test using Selenium & JMeter
Selenium and JMeter are two examples of software used for performing load testing. Selenium can record user actions within a browser and replay them. Selenium load testing scripts can also be edited using different programming languages and testing platforms. Selenium Grid allows for performing multiple tests from multiple machines at one time. While Selenium was not designed strictly for load testing, it can be used for generating scripts that integrate directly with several testing platforms.
JMeter is an open-source performance testing platform by Apache designed specifically for load testing web applications. JMeter does not work at the browser level, it simply works at the protocol level. While it appears like a browser from the perspective of the web server, it cannot execute all actions 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 load testing. An important distinction of JMeter is that it sends virtual users to your website or web application from your own computer, therefore, you cannot gather real-world traffic data like you can with LoadView. LoadView has multiple data centers around the world, so you can test from anywhere your users are located.
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 tests. You then identify the scope and the quantity of users required in the test, and the length of time to run the test. Some tests allow for scaling up users over time, while others may 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 (SPAs), sometimes called single-page interface (SPIs), can be trickier to test in terms of measuring KPIs because the page does not necessarily reload each time the user performs an action. There are many popular client-side and client-server side JavaScript frameworks that are used to create SPAs. Frameworks like Angular, Next.js, React, Vue, and many others can all be used to develop SPAs. Single-page applications “fit” on a single page and update dynamically, rather than load a new page each time. This provides users with a smoother, more reactive experience. Some load testing platforms will let you measure time between actions, such as button clicks, and provide the resulting data on the screen, while other systems can only measure the total time it took to complete a script.
The LoadView platform can test SPAs the same way you would for any other website or web application. Just script the user experience with the EveryStep Web Recorder and run virtual users that perform tasks under load, from real browsers. Other load testing tools, such as BlazeMeter or Flood, utilize JMeter. Like mentioned previously in the article, JMeter works at the protocol-level, unable to execute JavaScript, therefore, you cannot test all the actions a browser, or the user, can perform. For more information about JMeter, check out our JMeter load testing guide.
LoadView makes load testing easy
Our mission at LoadView is to be the go-to partner for our clients for all things load testing. As you’ve seen in this article, we have a comprehensive understanding and expert perspective on the field, and our team works overtime to provide the best suite of load testing tools available on the market. More than a platform, LoadView is a load testing partner to DevOps teams around the world.
We know developers would rather spend time making improvements and upgrades to websites and applications than laboriously running tests, so we’ve developed LoadView to take the stress and difficult out of load testing for both technical and non-technical users, which means development teams can devote more time and focus on website and application performance and less on complicated testing cycles.
Beyond this, at LoadView we constantly look to innovate and provide new and improved resources for our clients. A load testing platform needs to evolve with the changing demands of our rapidly moving digital reality. At LoadView, our sole focus is on our clients’ successful load testing, on-demand and on budget. Better load testing with LoadView results in improved websites and web applications, which benefits businesses who know users expect performative websites and applications to work flawlessly when they need them, without exception. Start testing today with a free LoadView trial.
Next Level
Experience unparalleled features with limitless scalability. No credit card, no contract.