Hi everyone,
At Mconf we've been working in a way of writing automated tests BigBlueButton in order to better understand how the server behaves under a certain scenarios, and to be able to answer questions like:
- Does the server response degrade after handling a few thousand chat messages?
- How does the server perform when there's a bunch of users trying to connect simultaneously?
- Does the joining procedure take the same amount of time for the 1st or the 100th participant in the session?
Over time there have been many initiatives built to stress test BigBlueButton (such as
https://github.com/mconf/bigbluebot, which is still being maintained), but there was always a lack of more granular information on the communication between server and client.
We had an experience using Jmeter in a different project and we decided to adapt part of that work to test BigBlueButton. Jmeter is a test suite for web applications, and explaining in just a few words, we can write procedures that must happen in each of the threads you configure to launch, and in our case, each thread connects to the BigBlueButton server, specifically Meteor, as if it was the HTML5 client. However, it's not the whole client in a headless browser, it's just the websocket connection that connects to the server, so from the server perspective, it's a client, but it is much more lightweight and programmable than a client itself.
It's available on GitHub:
https://github.com/mconf/bbb-jmeterThere are instructions on how to run a test on BigBlueButton 2.3, how to collect the metrics, and and a few examples on what it's possible to visualize, such as this:
(for each one of the transactions we can track how long did it take to send and get back the response)
We encourage you all interested in automated tests to give it a try and collaborate - we hope to build a stable enough framework so that we can easily run the same test against stable and beta versions of BigBlueButton and clearly see if something got improved or degraded.
Also we want to be able to simulate scenarios in which BigBlueButton doesn't work too well, and having a stable and reproducible environment we can work on improvements.
If you have any questions, please feel free to ask or open an issue.
Best regards,