Tools

Intro to Performance Testing for Mid- and High Load Projects

Find out what's performance testing, why it's important, what tools we use for it and learn the current trends in this area.

February 2, 2021
Alena Matienko, Nina Sydorenko
devops ninja animation

People use software as it facilitates the performance of their tasks. The more popular is the app (i.e. the more active users it has), the more profitable it is for you. But you need to have your application ready for the userbase growth.

 In this post we'll talk about why and how we measure and check this "growth readiness" as a software testing services company.

Why it's important

Retail businesses lose money every year because of the poor performance of their online stores. When large promo and discount events like Black Friday happen, the number of users and their data requests multiplies manyfold. If your site or app goes down in this case, you'll lose profit exactly when you planned to increase it. And one-time profit loss is a lucky scenario, since collateral reputation losses might have much more longstanding consequences.

 

HTTP Error 503 – Service Unavailable (Fix Guide) – Dowser
A typical error a user sees when the site is down due to the overload

 

The same applies to any software business. In 2009, Microsoft opened access to the beta of Windows 7. The influx of users wanting to download it was so massive the servers could not stand it. Or you might have heard of the game "Among Us" that at some point became so popular its servers couldn't cope with so many users being online at the same time, and it's been a challenge for the developers to address that.

There's a rumor saying that when Google.com went down for 5 minutes in August 2013, that costed the company behind it $545,000. We can only imagine how expensive was the 2020 Google services outage.

No wonder there are also Ddos attacks targeted at getting servers down and get businesses out of the game this way. 

Performance Testing and Its Key Performance Metrics

Performance testing is focused on three S's: speed, scalability, and stability. Unlike with usual quality assurance, we're looking for performance bottlenecks here rather than bugs. If the app runs slow or behaves inconsistently under expected workload, performance testing will reveal that. 

At the EGO QA/testing services company, we have three key metrics used for measuring the web project: 

However, you can't define if the project is medium or high load based on this metrics only since request processing varies for different projects. As for EGO, a project is usually high load when its existing infrastructure can no longer cope with its daily tasks and requires non-trivial solutions.

Performance testing is required to test the system, server, or infrastructure efficiency under different conditions and loads. With it, you can prepare your application for the projected growth in the number of users.

Performance testing usually includes:

More rare cases include endurance, spike and volume testing.

Once such an extensive testing is done, you can analyze the results and update the system to increase its performance.

Performance Testing Tools EGO Uses

Below we'll list our most used tools for performance testing on the mid- and high-load projects and give short overviews of their pros and cons. 

Apache Jmeter

Apache JMeter - Apache JMeter™

 

 

This is one of the most popular tools for performance management and load testing. It'll suit for the project of any size, has lots of features and its customizable.

Pros:

Cons:

Grinder

The Grinder Logo – TestMatick

 

One more free load testing framework. Based Java and Jyton (Java + Python), it also utilizes Clojure for scripting.

Teams of any size comfortable with writing scripts in Jyton/Closure usually find Grinder their best choice. 

Pros:

Cons:

Gatling

Gatling Open-Source Load Testing – For DevOps and CI/CD

Written in Scala, Gatling is a powerful tool for load testing. 

Pros:

Cons:

 

Webload

Load Testing Tools | Venkat Matta

Webload is an enterprise-level solution able to generate complex real-world load scenarios for stress testing. Works for both web and mobile apps and will fit companies of any size.

Pros:

Cons:

LoadNinja

Software Testing, Monitoring, Developer Tools | SmartBear

 We find it great as it doesn't require creating test scripts and thus saves us time. Suits medium and large companies best due to its cost.

Pros:

Cons:

The above-mentioned tools are the ones we use at our penetration testing company, so you might find other companies have different lists.

EGO's Experience in Performance Testing

At EGO Creative Innovations, we do performance testing on most projects. Prior to the first release we prefer to make sure there are no long load and response times and no performance bottlenecks. 

One of the first tools coming to our mind is Jmeter. With it, we've been counting how many users can log in and tap buttons at the same time. On Idencia's project we also measured synchronization speed between the web and mobile apps, and with another internal mobile app for corporate event management Jmeter helped measure the performance of the app screens loading at the same time. 

On the project with the photo uploading functionality, we used a tool calculating device memory. 

One of the most sophisticated performance testing approaches is deployed on the Amadeus project, a property management solution. There, we create automated performance test suites. They are launched on a virtual machine with enough resources, and this machine is in the Amadeus' network to eliminate network latency. That's how we calculate the performance threshold.

Usually we create a baseline performance test for every service. When changes potentially impacting performance are introduced to a service, this test is re-run to check if the performance hasn't dropped.

When applications don't need auto performance testing, our QA engineers check loading pages and pagination functionality and do other stuff that can be usually categorized under the umbrella term of "light performance testing".

At EGO, we also use Lighthouse for quick performance checks. 

Bottom Line: Performance Testing in 2021

The COVID-19 pandemic brought even more users and businesses to the Internet. Because of that the load on popular web resources is expected to continue growing. Performance testing will remain necessary to maintain and increase the profitability of online businesses and quality assurance \ software testing company services will be in demand.

Although there is no shortage of performance testing tools, in 2021 companies will continue to prefer free and open source tools that can be modified according to their business needs.  The highest demand will be for universal tools able to test both mobile and web applications. And since it's cumbersome to organize load testing via real devices, the popularity of cloud load testing tools will also grow.

But this is generalization. There's no way to figure out the best performance testing approach for your product without a deep look into it. And this is where's the problem: it seems like outsourcing quality assurance is unpredictable in terms of time and cost. To address that, we recently introduced our quality assurance plans for web and mobile. Contact us to learn more.


devops ninja animation
devops ninja animation
devops ninja animation
LIKE THIS ARTICLE? Help us SPREAD THE WORD.

More Articles

Back to blog