Skip to content

2015

Response time is critical for E-Commerce

Online E-commerce business is growing very quickly. From 2007 to 2015, the US Online retail sales have grown by 38%. And the market is still growing rapidly year over year.

Online E-commerce Growth

In this context, being able to follow the business growth is critical. The goal of any online retailer is to increase the number of visitors, and thus increase the number of orders. But, bringing more people on an online shop can quickly become a pain if the shop is not prepared for it.

Imagine you have an e-commerce. The local TV makes an interview of you, a successful entrepreneur. Many people will see you, and want to visit your shop to see what you are selling. This is where the nightmare begins. The opportunity to make more sales is compromised by the absolute slowness of the website. The servers are overloaded.

Recording HTTP traffic with Fiddler

Fiddler is an HTTP proxy primarly designed to debug HTTP requests. It allows to capture HTTP traffic and export it in different format. OctoPerf supports importing HAR (Http Archive v1.2), which is precisely what Fiddler can do. In this post, you will learn how to record your web or mobile app with Fiddler, and then run a load test from the Cloud with OctoPerf.

We are going to use FiddlerCap, which is a very simple and powerful.

Why recording

Recording an HTTP app is the best way to run realistic load tests. You are guaranteed to capture the real HTTP traffic between a customer and your web app. It's also quicker to record the traffic instead of creating it manually from scratch.

Recording HTTP traffic with JMeter

JMeter is an open-source load testing tool. See related posts if you want more information about JMeter. JMeter allows to record HTTP traffic with its built-in HTTP(S) Test Script Recorder. OctoPerf natively supports importing JMeter recordings.

Installation

First, you need to install JMeter on your computer:

  • Get JMeter from JMeter Download Page,
  • Decompress the archive,
  • Run JMETER_HOME/bin/jmeter executable (extension depends on your OS).

JMeter GUI should appear. JMeter is a Java program, it requires a Java JRE. Install one if you don't have any.

Real-time analytics with ElasticSearch

When we first started to think about real-time analytics, we though that our previous experience in load testing would help us to get quickly to something working fine. It always seems easy to rethink about a problem you already solved in the past. We were totally wrong.

We wanted to provide our users a completely new analytics experience when load testing their website. Our requirements are :

  • Real-time: users should not wait the end of the test to analyze results,
  • Blazingly Fast: users should experience sub-second response times, regardless of the number of concurrent virtual users,
  • Scalable: we must be able to scale horizontally as the number of users grows,
  • Reliable: the analytics system should be redundant to provide fault tolerance and avoid outage,
  • Testable: we should be able to easily verify through unit testing that the analytics system is working correctly,
  • Open-source: we don't want to build this by ourselves. We believe that it's not our job. We don't want to waste our time reinventing the wheel.

We placed the bar very high. If you want to reach the moon, shouldn't you somehow aim for the stars?

JMeter vs Gatling Tool

I think you'll agree when I say:

It's REALLY hard to decide whenever JMeter or Gatling Tool should be used.

You're probably wondering:

  • How does JMeter to Gatling Tool compare?
  • Which tool has best documentation? Performances? Script Maintainability?
  • Should I use JMeter or Gatling? Or maybe both?

Well, it turns out you can gain significant insight on JMeter and Gatling differences in just 5 minutes reading!

Following up our article about why we chose JMeter to build OctoPerf, our Cloud Load Testing Platform, this post compares JMeter and Gatling Tool on many different fields:

  • Project History: which tools is improved and maintained more actively,
  • Features: which of the two has the most features,
  • Setup: how each tool can be installed,
  • Documentation: which tool does have the most complete documentation,
  • Scripting: compares how to design scripts with both tool,
  • Performances: is JMeter faster than Gatling? Which is the most efficient tool,
  • and even more!

Ready for some action? Let's go!