Continuous Integration with Flood

How to incorporate load testing on Flood into your CI pipeline

What is Continuous Integration?

Continuous Integration (CI) is a software engineering practice in which automation is used to tie the main parts of the software development lifecycle together. This movement started in the development space and advocates improving the process that starts with developers committing code to a repository and ends with that code actually being deployed in production.

As software testing has matured, this definition has involved in order to include testing practices as well.

A modern CI framework still begins with a developer checking in code into a repository, which would then automatically kick off functional tests of the application that determine whether or not that code will be allowed to proceed to the next step. Once functional tests are passed, the code could then be automatically deployed into production, with reports emailed out to relevant stakeholders.

A natural extension of this would be to add in a load testing framework. After functional tests pass, the code could potentially be deployed to a staging or similar environment, where we can run our API load testing scripts to see if there have been any performance regression bugs introduced by the code. In this way, load testing could be an extra check before sending out code to production.

This sort of CI framework is preferable to the traditional process, which involves many manual checks and potential bottlenecks as the code is passed among different teams (development to functional testers to nonfunctional testers, with DevOps engineers helping each team along the way). A good CI framework may take a little bit more time to set up in order to come up with the correct path, but it dramatically reduces the amount of time required and encourages a development practice that is iterative, quick, and truly agile.

How Flood fits in

You can integrate Flood into your existing CI tools using the Flood API. You can, for example, start grids and floods automatically when code is changed in your environment. In this section, we'll go over how to integrate Flood with some of the more popular solutions.