Contributed Articles

Prepare for Black Friday in a breeze with hybrid load tests

This article by Kevin Dunne was originally published on The New Stack

Black Friday might feel like a distant thought on the horizon, but anyone who has prepared for this retail apocalypse in the past knows it comes in a hurry.  As eCommerce teams worldwide begin preparing for this all-important sale, the Flood team is ready to alleviate your pain with new cloud load testing capabilities that can help you make this the best Black Friday ever.

Earlier this year, we announced the official release of Flood Element, a tool that can dramatically reduce scripting time for complex scenarios.  Over the course of this year, we have seen it used to test everything under the sun: from simple websites to the most complex web-based ERP systems, with tests supporting up to 100,000 users and beyond. Additionally, teams are starting to run Element tests alongside their traditional protocol-based load testing tools.

In this article, I explain how Flood Element improves on traditional load testing tools to make your life easier, with simplified scripting and maintenance. I hope this exciting new tool will reduce the number of headaches you experience this holiday season and help you unlock your app’s full potential!

How existing load testing tools work

Most existing load testing tools like LoadRunnerJMeter and Gatling work by interacting over various protocols that are specific to each application type. A protocol is a set of rules that allows entities to communicate with each other. For example, consider languages. If you want to communicate with someone in Spanish, you must know the rules that apply to that language. It’s the same story with electronic devices: they need to establish a protocol with associated rules in order to transmit and control data flow.  Thus, these protocol-level load testing tools work more as a simulated interaction two systems would have when communicating, rather than impersonating real user behavior.

Where do protocol-level testing tools excel?

Testing at the protocol level means that you need to define end-user tasks within a tool to simulate the communication to the target server on a network communication level. Most of the tools either compile or interpret the specified routines and use small and efficient engines that are not real browsers. As a result, the cost of simulating a user is low. Tools like JMeter or Gatling that support the most common testing protocols (HTTP, HTTPS, LDAP, JMS and JDBC) can typically achieve upwards of 1,000 virtual users on a common load generator. However, the scripting requires deep knowledge of the application architecture to create and maintain representative scripts.

What options exist besides protocol-level tools?

For those that prefer not to test with protocol-level testing tools, a new class of browser-level load testing tools is emerging. Testing at the browser level allows you to define actions as a user would, by interacting with locatable objects within a web page rendered in a real browser. Examples of these tools include Selenium or Flood Element (based on Google’s Puppeteer), which are capable of managing the most common browsers Chrome or Firefox.

Are you wondering which type of load testing tool is right for you this holiday season?  It all comes down to your requirements, of course. If your requirement includes page rendering time, you will certainly prefer a browser-level tool for its real user simulation. On the other hand, if you need to test with millions of concurrent users, a protocol-level tool will provide a more reasonable cost for this large-scale simulation.

Let’s check out some of the pros and cons of these two families of tools…