Some of our users asked about load testing AWS SQS with Gatling. Here is a step-by-step guide!

Amazon Simple Queue Service (SQS) is AWS’s managed message queuing service.

As of now, Gatling doesn’t have a native SQS support, but still, it’s fairly easy to use Gatling to load test SQS.

AWS provides a library that implements part of the Java Message Service (JMS) API.
This library is just a thin adapter layer on top of the AWS Java SDK library, so it doesn’t introduce any significant overhead.
You can then just plug onto Gatling’s native JMS support.

Importing the SQS JMS adapter library

The first thing you have to do is to add the amazon-sqs-java-messaging-lib jar in your classpath.
As an example, here are the maven coordinates you’d have to add into your pom.xml.

<dependency>
  <groupId>com.amazonaws</groupId>
  <artifactId>amazon-sqs-java-messaging-lib</artifactId>
  <version>1.0.4</version> <!-- latest version at the time of this post -->
</dependency>

We also recommend that you upgrade the version of AWS Java SDK as the one that’s being pulled transitively is a bit old:

<dependency>
  <groupId>com.amazonaws</groupId>
  <artifactId>aws-java-sdk-sqs</artifactId>
  <version>1.11.490</version> <!-- latest version at the time of this post -->
</dependency>

Note that only the v1 of the AWS Java SQK is currently supported.

Creating a ConnectionFactory

Adding imports

You need to add imports for SQS, the JMS SQS wrapper and Gatling JMS DSL.

// SQS
import com.amazon.sqs.javamessaging._
import com.amazonaws.auth._
import com.amazonaws.regions._
import com.amazonaws.services.sqs._

// Gatling JMS DSL
import io.gatling.jms.Predef._

Creating the SQS Client

The first thing is to create the SQS client instance that will be wrapped with the JMS layer.

val sqsClient = {
  val builder = AmazonSQSAsyncClientBuilder.standard
  // configure the credentials strategy of your choice
  builder.setCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials("myKey", "myToken")))
  builder.setRegion(Regions.EU_WEST_3.getName)
  builder.build
}

Make sure that you properly close the client and its underlying resources once the test is done, thanks to the after hook

after {
  sqsClient.shutdown()
}

Configuring the JmsProtocol with the  ConnectionFactory

Gatling JMS support lets you either pass a JNDI configuration to look up for a ConnectionFactory, or directly pass one you’d create programmatically. Only the latter works for SQS.

val jmsProtocol = jms.connectionFactory(new SQSConnectionFactory(new ProviderConfiguration(), sqsClient))

Writing a JMS Scenario and Configuring the JmsProtocol on the SetUp

This step is pure Gatling JMS, please refer to the official documentation

val scn = scenario("SQS test")
  .exec(jms("SendMessage").send
    .queue("MyQueue")
    .textMessage("SomeText"))

setUp(scn.inject(atOnceUsers(1))).protocols(jmsProtocol)

Note that SQS doesn’t support temporary queues, so it you want to use requestReply, you have to explicitly configure the replyQueue.

Using FIFO queues

SQS FIFO queues have the notions of Message Group ID (required) and Message Deduplication ID (optional). Those can be configured with the respective JMSXGroupID and JMS_SQS_DeduplicationId JMS properties.

jms("SendMessage").send
  .queue("MyFIFOQueue")
  .textMessage("SomeText")
  .property("JMSXGroupID", "MyMessageGroupId")

We hope this blog post helps! Let us know your feedback!

Stéphane

We are thrilled to announce that we just released Gatling 3.0.3 and Gatling FrontLine 1.6.2!

Feel free to send your feedback!

The Gatling team

Chronique D’Effectuation #20 : Gatling, S’Armer Face A La Montée En Charge

Votre équipe Tech développe depuis plusieurs mois maintenant la nouvelle version de votre site spécialement conçue pour les soldes qui arrivent à grands pas. Trois, deux, un… lancement live le jour J ! Victime de son succès, votre site ne résiste pas aux milliers d’utilisateurs se ruant sur les bonnes affaires. C’est la panique côté Tech et bientôt le crash du site. Patatras… adieu veau, vache, cochon, couvée !

En deux mots. Eviter le crash.

Pour éviter ce genre de situation dramatique, Gatling offre la possibilité de tester la robustesse des applications en simulant les moments les plus critiques. Le co-fondateur Paul Henri nous confie : “c’est comme un coach sportif, on prépare les applications à tenir des charges très importantes pour qu’elles ne craquent pas au 100 mètres, c’est-à-dire des événements comme le Black Friday ou le lancement d’un nouveau produit ou service.

L’équipe. Le bon viseur. 

A l’origine de Gatling, Stéphane Landelle, ingénieur nucléaire reconverti dans le Web alors en plein boom. En travaillant dans les grands groupes, Stéphane ne trouve pas d’outils adaptés aux nouveaux enjeux du web et à l’explosion des audiences. Comme tout Tech qui se respecte, Stéphane commence donc à développer son propre outil avant de rencontrer en 2014 le binôme qu’il lui fallait : Paul-Henri.

Paul-Henri, qui se définit comme un “touche à tout”, s’oriente naturellement vers le monde des start-up après ses études à HEC. Pour lui, au départ, Gatling était un “projet super intéressant mais qui n’a pas du tout été pensé pour être monétisé”. Même s’il ne connaît pas du tout le monde du développement logiciel, l’idée trotte dans sa tête quelques temps jusqu’à ce qu’il se décide à relever le défi de l’impossible. “La société Gatling est née d’un pari un peu fou : mettre deux personnes avec des profils qui n’ont rien à voir pour valoriser un projet à très forte valeur technologique ajoutée.”.

Quatre ans plus tard, Gatling est composé de 7 collaborateurs. Les deux co-fondateurs Stéphane et Paul-Henri respectivement CTO et CEO sont accompagnés d’une équipe de quatre Techs et d’un directeur commercial. Paul-Henri nous explique que les développeurs de Gatling sont “au four et au moulin” et très concernés par le projet. Il n’est pas rare en effet de voir ses développeurs au contact des clients et de revêtir les habits de commerciaux.

Le Problème. Changement d’échelle.

Dans le monde de la Tech, tout évolue à vitesse grand V. L’innovation est très rapide, les audiences explosent, et même les exigences de time-to-market s’intensifient. Or, peu d’outils capables de gérer ces changements d’échelles sont développés et disponibles pour les Techs.

Les tests de charges “sont l’affaire de tous”. Que l’on soit un géant du web ou une entreprise utilisant une application, la réaction et la robustesse d’une application face à la montée en charge d’utilisation est critique. Tout le monde est concerné au sein de l’entreprise. Si l’application ne soutient pas le nombre d’utilisateurs, c’est le crash assuré, et donc une perte de chiffre d’affaires. Les tests de charges, bien différents des tests fonctionnels qui eux cherchent à vérifier les fonctionnalités de l’application, sont présents tout au long du développement de l’application.

Nos deux co-start-uppeurs partent donc à l’abordage du monde du DevOps avec une approche très technique qui va contribuer paradoxalement à démocratiser le test de charge dans les entreprises.

 

L’Idée. De la Tech pour les Techs.

Stéphane commence le développement de Gatling pour des besoins internes chez Takima, l’ESN qui l’emploie. C’est ainsi que naît la première version de Gatling. Le projet connaît pourtant un rapide succès dans le monde entier, à commencer par les Etats-Unis, où de nombreuses équipes de développement l’utilisent.

L’intuition de Stéphane va à l’encontre du marché : pas d’interface graphique, seulement du code. “Les logiciels se codent, donc les tests de charges aussi.” Cette approche très technique s’adresse directement aux professionnels du domaine informatique.

 

La Mise en Oeuvre. Challenger l’Open Source

Paul-Henri nous livre durant l’interview les grandes étapes qui ont jalonnées le développement de Gatling. La première phase de Gatling rime avec tâtonnement. Apprendre à s’appréhender en tant que co-fondateurs, découvrir les tests de charges pour Paul-Henri, les comprendre et les faire comprendre. Un premier challenge relevé par l’important travail de formalisation de la valeur qu’apporte les tests de charges.
L’une des grandes étapes connue par tout entrepreneur est de passer de “projet à start-up”. Pour nos deux co-fondateurs qui n’ont jamais créé de start-up auparavant, ce changement culturel implique de nombreuses interrogations. La problématique majeure rencontrée reste la valorisation et la monétisation de leur outil open-source.

La jeune start-up de teste durant un an différents modèles. Au début, la start-up fait majoritairement des prestations de services tout en développant son code en open source. “Très rapidement, on a appris à comprendre nos propres utilisateurs et on a vu ce qu’ils essayaient de bricoler autour de la solution open source”. Ce premier déclic entraîne une action immédiate : développer eux-mêmes ce que les utilisateurs essaient de faire. La première année de Gatling est pleine de rebondissements : ajouts et retraits d’offres, tests de différents modèles économiques, récupération de feedbacks… Toute une aventure pour transformer le potentiel de Gatling en succès commercial.

Soudainement tout s’accélère pour l’équipe, le premier client arrive et tous les autres s’en suivent ! Avec quelques dizaines de milliers d’utilisateurs dans le monde, les deux co-fondateurs se rendent compte que leur solution est utilisée par des entreprises “qui sont à la pointe dans leur domaine”. Gatling n’est pas un projet franco-français, dès le départ son audience est internationale.. Les tests de charges et la problématique de performance touchent autant les start-up que les grands groupes, dans tous les secteurs d’activité et dans le monde entier.

La principale difficulté pour Stéphane et Paul-Henri est de convaincre de l’intérêt d’une version payante auprès de leurs utilisateurs, et notamment les grands groupes, qui utilisent la version open-source et gratuite.. Au fil des discussions et des échanges menés avec ces géants, Gatling met en place des relations gagnant-gagnant qui lui permet de s’infiltrer dans le monde des grandes entreprises. Les premiers clients riment également avec bugs et gestion de la clientèle. Un nouveau cheval de bataille qui pousse l’équipe à se dépasser.

Beaucoup de hauts et de bas se sont concrétisés par des signatures régulières de contrats pour Gatling. Ces signatures ont été facilitées notamment par la reconnaissance obtenue par l’intégration à Station F. “Tout d’un coup, beau coup de personnes s’intéressent à votre projet et veulent comprendre le test de charge..” Aujourd’hui ce succès se chiffre avec plus de deux millions de téléchargements en 2018 et avec le développement commercial de leur solution payante dédiée aux entreprise..

 

 

Les Finances. Une bombe à retardement.

Gatling est né au sein d’une ESN qui l’a poussé et a accordé du temps à Stéphane pour développer son outil. Un début sur fonds propres de l’ESN puis l’autosuffisance grâce aux souscriptions annuelles de leur version payante à 4800 euros. Pour répondre aux objectifs de développement commercial, Gatling recherche des fonds.

Dans le paysage des tests de charges, une grande modification de marché est en cours. Beaucoup de concurrents ont été achetés par des grands groupes qui fournissent des services all-inclusive. Face à ces géants, la levée de fonds pour Gatling est un impératif. Une augmentation de capital permettra à la startup d’être plus proche de ses utilisateurs, de les accompagner et de les former à l’outil. Gatling a également un grand besoin en capital humain. Leur communauté étant mondiale, une présence sur les différentes zones géographiques est indispensable tant pour le suivi des clients que pour la création de contenu différencié. Enfin, comme le monde de la Tech l’exige, rester à l’affût des nouveautés et évoluer à la même vitesse que le monde IT est indispensable.

 

Chronique co-réalisée avec @Jean Rognetta, Directeur de la rédaction de Forbes France et Florian Bercault & Adèle Pasquier d’Estimeo.

Article à retrouver ici.

2018 has been a tremendous year for us! Many things changed for Gatling and we would like to share in this blog post our past successes with you!

First of all, in the name of the Gatling team, I wish you a happy new year, full of success and performance!

Here are the 6 big achievements of 2018 for Gatling!

1. We have reached 2 million downloads… and even more!

On the 1st of January 2019, Gatling has been downloaded more than 2,500,000 times! A huge thanks to all our users all over the world!

2. Gatling 3 is out!

When I met Stephane, Gatling’s creator, 4 years ago (before we created our company Gatling Corp), he was just about to release Gatling 2.

This 2nd version was a game changer for us. Stephane fixed a lot things and released a lot of new features. Our downloads really started to boom at that time (we have reached 100,000 downloads a few months after this release).

Today, the release of Gatling 3 is the highlight of that year! If you missed it, read this blog post about our new features: Gatling 3’s new features!

3. 4,000 stars on Github!

You are more and more everyday to use Gatling! Again, a huge thanks! It really helps spread the good word about Gatling!

4. Our team is growing!

Ludivine and Tristan just joined the Gatling team! Ludivine is our new trainee and Tristan our new Head of Sales. We are thrilled to have them in our team!

Tristan will be in charge of our Enterprise version, Gatling FrontLine (he is your point of contact if you’d like to do an evaluation, btw!) and our professional services. Ludivine is our new trainee and will help us with various aspects, from our Sales development to our Marketing strategy.

Welcome Ludivine and Tristan!

5. Gatling FrontLine is now available in AWS marketplace

The Gatling team was at the AWS re:Invent in Las Vegas! You can read more about this here: AWS re:Invent: Meet Gatling Corp in Las Vegas!

The AWS re:Invent is the huge tech event for the AWS ecosystem each year. We met a lot of our users overthere and gave away a lot of Gatling tee-shirts!

We have more and more users who are subscribing to Gatling FrontLine (our Enterprise version), so we decided to make it available in AWS Marketplace last July. We are very happy to be part of this ecosystem and we hope to see you in the next AWS re:Invent!

6. Gatling joined Station F!

Gatling joined Station F, the largest startups’ campus in the world, based in Paris. We are very proud to be part of it since last July!

There are many more news to come in the following weeks! Stay tuned!

Again, a happy new year to all of you! Let’s make this new year a wonderful one together!

Paul
CEO