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 of 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 2017 survey conducted by ITIC found that a single hour of downtime cost large organizations over $100,000 per year. If you consider specific industries that depend on high-volume transactions, like financial services or large online retailers, the impact is likely more significant and exceed millions of dollars per hour.

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:

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 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, 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.

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 the 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 – HTTP/S and real browser-based simulations.

HTTP/S-based simulation: Although becoming outdated because of modern applications, 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 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, like AJAX, 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.

 

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 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 time frame.

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 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 the majority 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 where they come in from, and the user 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 a heavy stress 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 reliable and fast web pages and applications. If they’re not, they’ll 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 testingload stress performance testing
  • Real browser-based scripting with the EveryStep Web Recorder
  • Advanced scripting in 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’s typically the first thing customers will see, and if it’s sluggish or crashes, they’ll 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’ll discuss five best practices you can implement so you can 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 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’re covering your bases and delivering an excellent user experience.

 

2.  Determine metrics you’d like measured. 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 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 don’t 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’s the whole point when load testing 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’s 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:Growth Chart

  • 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’ve 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’s 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’s what your users are using. Additionally, 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.

load test scripting

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 CDN’s. 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.

LoadView Load Testing Shift Left Infograph

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.

Flexible. Scalable. Powerful.

All from one convenient load testing solution.

Load Testing FAQ – All Your Questions Answered

Table of Contents

  1. Is a stress test the same thing as a load test?
  2. What is load testing in software?
  3. What is load testing in .NET and Java?
  4. What is load testing in QA? What is performance testing in software testing?
  5. What is the meaning of throughput in performance testing?
  6. What is load testing in JMeter? What is load testing in LoadRunner?
  7. What is load testing in SoapUI? What is a spike test?
  8. Who is responsible for load testing? Who performs load testing?
  9. Which load testing tool should I use? Which is the best load testing tool?
  10. When should I start load testing? When is load testing done?
  11. Why perform load testing? Why is load testing important?
  12. What is the objective of load testing?
  13. What is performance testing?
  14. What are the different types of performance testing?
  15. When should I use performance testing?
  16. When is performance testing not required?
  17. What is the performance testing process?
  18. How can performance testing be automated?
  19. How do performance testing tools work?
  20. Why should we automate performance testing?
  21. What is the performance testing life cycle?
  22. How do I implement performance testing for mobile applications?
  23. How is load testing performed?
  24. How do I load test a desktop application?
  25. Can load testing be done manually?
  26. How to perform website load testing
  27. How to do a load test using Selenium & JMeter
  28. How load testing tools work
  29. 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.

stress testing and load testing

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.  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.

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 can test both SOAP and RESTful APIs.  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 actually hit a website or app can identify the bottlenecks that could cause the site to crash or the slow an app’s performance.  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.

DevOps load testing

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’s 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 isn’t enough time for making the necessary changes or getting help for handling additional tests.

Cloud Load Test

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’s 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 times, 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 aren’t prepared for heavy traffic, there’s 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 expected capacity of the website.

  • Identifying critical failure points

Often times, you’re just looking for how many simultaneous users can hit your web app until there’s 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’s 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’re using multiple app monitoring tools, there are still a number of 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, 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 is capable of handling 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 number of 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 sytem 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.  Sometimes bugs can appear during endurance testing because of memory overflow, improper garbage collection, or a number of other reasons.

  • 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 don’t necessarily care about the quality of your user experience, when you don’t have large numbers of users visiting your website, or when you don’t 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 change 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 a number of third-party solutions.  These solutions typically allow for building and scheduling test cases based upon a number of 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 what part of the app you are website load test softwaremeasuring, 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.

performance testing life cycle

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 for detecting 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 period of time).  Testing should continue with each system change, ensuring there’s 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.

geo distributed load testing

For an app that connects to a remote back-end, spinning up a number of simultaneous 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.

load testing desktop 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 actually 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 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 metrics for the system.

 

How to perform website load testing

First, establish what aspects of the system you want tested.  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’re 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’re 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.

load testing performance metrics

Once you initiate your test, record and pay attention towards the performance counters on the servers hosting the website.  This is where you’ll 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.

 

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 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 a number of testing platforms.

JMeter is an open source 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 at 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 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 (SPAs), sometimes called single-page interface (SPIs), can be trickier to test in terms of measuring KPIs because the page doesn’t necessarily reload each time the user performs an action. 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 for completing a script.

load testing single-page applications

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.

Take Your Load Testing to the
Next Level

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