Before releasing the new James version, we are willing to introduce stress-tests
over IMAP & SMTP protocols.
In order to achieve this task, we will use the Gatling (https://github.com/gatling/gatling)
Gatling is developed in Scala and built upon :
- Async Http Client and Netty for non blocking HTTP
- Akka for actions (requests, pauses, assertions, etc...) modeling and orchestration ...
Gatling core engine is actually protocol agnostic, the first part of the project will be to implement two news protocols : SMTP and IMAP.
This includes implementing the asynchronous and non-blocking code for this and also designing the right API to write the tests scenarios.
The tests will be written in scala, and the scenario will be defined in a sub-task
before starting the implementation.