Case load testing

Load testing of the Aviobook application in AWS

Aviovision is a Belgian company that focuses on the development of high-quality, innovative solutions for aviation. Aviovision developed a digital version of the flightbook ‘Aviobook’ which can be easily used via a tablet and is fully linked to the systems of airlines. A flightbook contains all manuals and routes that pilots need before they can take off. With the Aviobook app, the pilot can easily and quickly gather all the necessary documentation for the flight.

Customer needs

Aviovision was already present on the European market. With a focus on cargo flights, they count on a volume of about 30,000 flights per week. Thanks to their planned roll-out to the American market, the number of flights per week would double to 60,000.

Hereby, Aviovision obviously had one big question. Could the platform handle a doubling of volume? Can the roll-out to the American market take place without problems in the application? There was a need for a performance test set that could monitor the reaction of the platform to increased load.

There was also a need for automated performance testing. Aviovision was not used to perform regular load tests on their platform. Of course, this resulted in late feedback on performance bottlenecks in the new features.

Evidently, this assignment also brought the opportunity for a historical catch-up of the application. Meanwhile, the Aviobook application had been live for two years. This was the ideal time to find out and adjust any future problems in the platform.

Refleqt solution + deliverables

Refleqt’s solution consisted of several elements:

Technical analysis:

Using a technical analysis, we mapped out the API landscape of the app & admin website. This way we had a good view on the network traffic and could get to know the Aviovision application in detail. This detailed understanding of the platform allowed Refleqt to quickly develop the right performance test set. After the technical analysis, Refleqt handed over the necessary advice with possible optimizations to the development team.

Performance testing:

To set up the performance tests, we used the OpenAPI documentation along with an open source template for Scala. In combination with Swagger Codegen, we generated a Scala Library as an artifact. This Scala Library was imported into Gatling to perform the necessary load tests. Afterwards, a load generator was configured on AWS using Docker.

For logging and monitoring during the performance tests, Gatling was linked to a Grafana dashboard via Influx DB. This way it was possible to display real-time results during the loadtesting so that possible problems or errors could be quickly picked up by the development team. In the dashboard we could monitor the health of the platform and the following information was displayed in real-time:

  • Number of hits/minute
  • Response times
  • Error percentages

Execution:

The execution of the performance tests was done iteratively and in continuous collaboration with Aviobook’s technical team. This way it was always possible to investigate causes of negative test results.

Tools & Technologies

  • Technische Analyse: Charles (Proxy server)
  • Performantie testing: Gatling, Scala, Maven, OpenAPI, Swagger CodeGen, Scala Build Tool
  • Implementation: Grafana, Influx DB, Kibana, AWS, Docker

Results

Aviovision responded very positively to Refleqt’s work. Indeed, through the technical analysis, some bottlenecks were discovered in the platform. These were picked up and solved by the development team of Aviovison.

In addition, the app ‘Aviobook’ is ready for an increase in traffic thanks to favorable results in the performance tests. The platform will be able to carry the doubling of load without any problems.

The QA team of Aviovision was fully trained by Refleqt based on a technical transfer. In this way, the test set-up could also be used after the performance testing.

Do you have a similar challenge that you need help with? Feel free to get in touch!