Skip to content

Load Testing Blog

How to load test a Rest API

REST APIs are becoming widely popular. Our own application is designed with a REST API. What does it mean? It's a software architecture where a client (the Web Browser) talks to a server (an HTTP server in our case) mostly using the HTTP protocol.

REST services used to communicate using an XML based protocol called SOAP. SOAP is still used by big companies in legacy REST services. Nowadays, REST APIs are mostly communicating using the JSON format. JSON is human readable, like XML, but simpler. It lacks all the security layers SOAP can offer, but most of the web application don't require them.

In this article, we explain how to easily run thousands of concurrent users on your REST Api using OctoPerf.

Unit testing AngularJS directives

As we are currently working on marketing our load testing solution we don't get much time left for coding. We identified some issues that could spoil user experience. It could make us loose some prospects.

So I took one day off backlinking / mailing / phoning / marketing to return to my beloved IDE. One day of coding in six weeks, it feels like holidays! I took the opportunity to improve our frontend SonarQube metrics. We now have only 5 hours left of technical debt. Not as well as the backend code quality, but it is on the right track:

Technical debt

I fixed a large part of the issues and started to unit tests our AngularJS directives using Karma.

How we greatly improved user engagement

The goal of any Saas Application is to convert as many trials as possible to paid customers. To improve your application, what do you absolutely need? Feedback. We are using a live chat support app to get feedback on how users are using our SaaS app.

We were greatly surprised by the results. Many of our users were stuck at the very first step of load testing their web or mobile app. We discovered several issues:

  • Customers were proposed to create an empty virtual user as first choice. Many of them were then stuck with this empty user, not knowing what to do next,
  • Customers were not finding how to return to project homepage from the virtual users edition page,
  • We are only collecting email when user are registering to improve visitor to trial conversion rate. We have then a lack of information about users, and need to find a way to get them later.

Let me explain now how we greatly improved our user engagement and trial conversion rate by fixing the above points.

Why we embrace remote work

The world population has grown by 30% since 1990, going from 5 to 7 billions people. The distance from workplace to residence tends to increase due to the life cost within cities, like in San Francisco, where someone is renting a backyard tent for 899$ per month, for people willing to have a temporary home until finding a decent one.

Why should we stay at a single place when having a digital company like ours? Why are companies requiring people to be at work 9am-6pm? Isn't there something we can do to make people happier and healthier?

I feel like, as a Digital worker, that we shouldn't be constrained to work at a single location. While you still need to meet each other from time to time, people moving to workplace is inefficient.

Commuting hell

Work Commute

I've been in San Francisco Bay a few years ago and have been astonished by how many people were driving to their workplace, alone in their cars. The same happens here in South France. I commuted to work for many years, spending countless hours in traffic jams. The time spent commuting is purely wasted. You can't do anything when you are driving your car. It's a little better when using public transports since you can do something else while on your way.

From Java to JavaScript

Our load testing platform, OctoPerf, has its frontend made using AngularJs. But it was not always the case, and this article describes the journey that led us to this choice.

Java was all I knew

When I graduated in 2007, all I wanted was to perfect my Java skills. I spent years as a consultant in several companies, chowing down Struts or JSF, Ant and Maven. I also created personal projects to learn JBoss Seam or GWT. Many of these previously trending technologies are outdated now.

Java and its ecosystem were all I knew, and all I wanted to know. The little prick I was, looked at PHP or JS developers with disdain. I was convinced that Java would be the best solution to any problem. I was convinced that I could create web applications without writing HTML or CSS.

You already know that i was wrong. silver bullet is a myth!