I have developed an image processing web application and would like to run some load tests to get an idea how it will handle peak usage scenarios.
The application is asynchronous and to simplify things this is the current workflow:
The user logs in, uploads one or more jpeg file, makes choices of processing options (filters, rotation, splits, shapes coordinates extraction etc: all those params are set via ui and sent as part of the POST request to processing services) one service finishes its work, flags the file in a postgres db as ready for the next step so on so forth, some steps are final, and result in the user being notified to take further actions, some other steps are automatically picked up (kind of asynchronous tasks) so the system can carry on processing without user interaction.
My question, how would one approach load testing such asynchronous systems? Is looping to wait for a condition to happen a good practice in automated load testing ? Are there any load testing known best practices for such distributed and asynchronous systems? Any pitfalls to avoid ?
The load testing tool i’ve chosen is LocustIO as it is 100% code. But willing to reconsider others should any third party testing libs are required to accomplish this.
Source: Read More