Skip to content

Load Testing Blog

Report from Agile Testing expo

We attended the Agile Testing Expo in Danvers (Boston area, Ma) about one week ago. It was the first edition of this event in the US after several successful editions in Germany. We handpicked this event as a part of our Expo tour in the US. A convenient area for us to travel as several of our customers and prospects are located in the Boston area. In this IT business where a lot can be done remotely, we always enjoy meeting face to face with our supporters to share some good talks.

Booth

The expo was organised in the expo hall of the Hilton DoubleTree hotel. Count a 30 minutes drive North of Boston to reach the place. On the event, every exhibitor had a small corner to display its materials, no large booths, only a table and room for a couple of banners. We made the call to display our colors and openly communicate on JMeter and our basic strengths (Easy scripting, Intuitive design, Live results). A good call as we were the only company to communicate about JMeter among our competitors. A good keyword when it comes to performance testing. This is something we experienced at StarWest in October also, it drags people's interest.

Booth

Spring Boot + Hazelcast Tutorial

It all started when we had the following problem: How can you enable High Availability in a Rest API based on Spring Boot?

As you may know, we have two products: (both based on Spring Boot)

  • OctoPerf Saas-Edition: the online saas platform,
  • OctoPerf Enterprise-Edition: the full on-premise installable version.

While Saas-Edition absolutely needs High Availability, the Enterprise-Edition doesn't share the same requirements. But, as astonishing as it may seem, both versions share exactly the same code, while working slightly differently.

That's how I've come up with an elegant solution I'd like to share with you. This article aims to give an answer to multiple problems arising when clustering a web application (and especially Rest APIs):

  • Get an understanding of why clustering is inherently difficult (but not insurmountable),
  • How to hide clustering problematics behind a service that handles the difficult work for us,
  • How to enable clustering in a Spring Boot Rest API? Which framework should I use? (obviously we're talking about Hazelcast here)
  • How to make your Spring Boot App configurable to support High Availability without changing a single line of code, (using @ConditionalOnProperty)
  • How to implement a very simple Leader Election mechanism using Hazelcast and know when your instance is the leader.

The whole article is based on real-world code examples available on Github. Don't expect any long explanations on Distributed Systems theories.

JMeter vs SoapUI

There are many functional and load testing tools available on the market. That's great!

The most renewed open-source tools are certainly JMeter and SoapUI.

But, I'm sure you agree to say that it's difficult to know which one best suits your needs:

  • What features has JMeter?
  • What are the pros of using SoapUI?
  • Which tool has best community? User experience? Script maintainability?
  • Should I use JMeter or SoapUI? Or maybe both?

Gain significant insight on JMeter and SoapUI differences by reading this blog post that compares them on many different fields:

Ready for some action? Let's go!

Rancher 2: Getting Started

You may be in the situation like me: you have already extensively used Rancher v1.6.x but would like to migrate to Rancher v2.0.x. For those who don't know, Rancher is a Docker Orchestration tool.

While trying to setup a development machine with Rancher 2 installed, I came accross numerous different issues. I've spent hours figuring out how to fix them.

This tutorial is all about sharing the tips and tricks to avoid you waste time:

  • The requirements to run Rancher 2 (based on Kubernetes)
  • How to configure Rancher 2 to run on different ports (other than the default 80 and 443),
  • How to run Rancher 2 with an Ingress Controller on the same machine,
  • How to link your Ingress to an external service (like Jenkins),
  • Migrating existing services from Rancher v1.6.x to Rancher v2.0.x,
  • And many other tips along the way!

Let's see how to setup and run Rancher 2.

OctoPerf v9: The New Unified Docker Agent

OctoPerf Enterprise-Edition is OctoPerf fully installable on your own hardware. Up to OctoPerf v8.x.x, OctoPerf EE uses Rancher to manage load generators.

After multiple setup sessions with our customers, we came to the conclusion that we needed to improve the way load generators and monitoring agents are managed. We had to make core improvements to make OctoPerf EE much easier to install. Let's see:

  • How OctoPerf currently works and why it's not optimal,
  • And the changes we've made in the upcoming OctoPerf v9.0.0 to greatly improve the situation.

Let's go!

Historical Changes

2014-2015: Apache Mesos Agent

Singularity on Apache Mesos

Why the hell have we based OctoPerf on Rancher? That's a fair question I'm going to answer.

Initially, back in 2015, when we released OctoPerf's first version, it was based on Apache Mesos and Singularity. As explained on their website today: