Load testing vs. stress testing

Adaptive Language Processing

What is load testing?

Put simply, load testing is about seeing how your web applications or products respond when they are subjected to normal load. It seeks to answer some important questions: How does your backend react as the load increases? Does your API remain responsive? Does your database slow down? Do your load balancers do a good job? Can your servers handle the network load?

Adaptive Language Processing

What is stress testing?

Stress testing is similar to load testing, but it is designed to push your web application beyond its expected operating conditions. During load testing, you might explore how your site reacts to 100 new sessions arriving each second. But what happens if 1,000 sessions arrive? Unless you have infinite resources, every application will fail eventually. This is about ensuring your site fails gracefully and establishing the load that triggers that failure.

Adaptive Language Processing

What is the correct load to test?

Before starting the process of load testing you need to decide on the expected load your web applications will receive. For existing applications, you probably already know this. For a new application you need to make an educated guess. Look at similar sites and applications. Is it likely your load will follow a diurnal pattern, with peaks at predictable times of day? Will your traffic be coming from one country or many? Will user sessions be short or long?

How do traditional tools work?

Most stress and load testing tools are fairly dumb. They work by triggering multiple API calls and looking at how the response times vary. This is unrealistic for several reasons:

Large Device Inventory
No variation in load

This style of testing produces very predictable stable loading. Generally, you can only specify the rate at which new requests are launched, and requests are of limited complexity. This sort of load is very unrealistic and won’t stress all parts of your backend equally.

Slow Manual Test Maintenance
Limited statistics

After the test you see things like: total sessions; minimum, mean, median, and maximum response times; number of HTTP error codes (e.g. 500, 503, etc.). From these you will be able to determine roughly how your site performs. However, to see any more detail you will need to use additional tools such as 0x.

Slow test performance
Doesn’t test load balancers

Load balancers rely on factors like origin IP address and TCP port in order to distribute the load from sessions. If all your load is originating from a single server, the load balancer won’t do its job properly.

Hidden DOM selectors
Creating test requires writing code

Tools, such as Artillery or LoadRunner, allow you to specify different types and proportions of session to create during your test. You are also able to modify the HTTP headers. But tests like these are written in Python, JavaScript or Java.

How is the Functionize performance testing tool different?

The power of intelligent mobile testing

Functionize uses an intelligent test agent for all testing. Our performance testing tool is designed to produce far more detailed and accurate results than traditional tools. Firstly, it uses your Functionize tests and orchestrations to create realistic user sessions. Secondly, it runs on the Functionize Test Cloud, so you are able to launch sessions from any location globally. Thirdly, the tool launches sessions at a continuous, realistic rate, mimicking genuine user sessions. Finally, each session comes from its own virtual server, so each one has a different identity. This ensures you are testing your load balancers properly.

How do I use the Functionize performance testing tool?

The Functionize tool is extremely simple to use. You can choose to test with a specific number of sessions or can ramp the load up steadily. You select exactly what tests you want to use for generating the load and where the load comes from. Once the tests are complete you will see the detailed performance breakdown.

screenshot Automating your testing with Functionize

What statistics can I see?

The Functionize performance testing tool instruments and records the entire test session. You see how long pages take to load, how quickly elements become active, and when pages are visually complete (our proprietary metric for usability). This level of granularity makes it easy to identify exactly where any problem lies.

screenshot Automating your testing with Functionize

Sign Up Today

The Functionize platform is powered by our Adaptive Event Analysis™ technology which incorporates self-learning algorithms and machine learning in a cloud-based solution.

For more information, read our blog, follow us @functionize or email us to learn how you can get started today with Functionize Autonomous Testing.

Increase your productivity