bbb-jmeter
Jmeter script to load test a BigBlueButton server by stressing the html5-client websocket, this can be useful to test some specific messages and compare performance between changes/versions made to the client to find bottlenecks.
Docker based with grafana and influxdb integration to visualize results:
What does it do?
- The
test/bbb_23.jmx
script creates a meeting for each line intest/meetings.csv
and join them with users according to the number of threads defined byThreadsOwner
andThreadsGuest
.
Then, each user/thread:
- Performs the initial default meteor websocket communication and subscribe to all collections;
- Sends a "Hello" message to chat and change the emojiStatus;
- Enter in a loop to send VoidConnection and a Chat Message for
PingLoopOwner
andPingLoopGuest
times.
When the Guest/Viewer loop ends, they leave the meeting.
When the Owner loop ends, they end the meeting.
Prerequisites
Docker and docker-compose
Running
git clone https://github.com/mconf/bbb-jmeter.git && cd bbb-jmeter
- Edit
.env
file:- Add the
hostname
andsalt
of the server you want to test against - Configure the threads and ping variables as desired
- Add the
- Edit
test/meetings.csv
if you want to create more than one meeting (and increaseThreadsOwner
accordingly)- format:
meetingName,meetingId,voiceBridge,moderatorUserNamePrefix,guestUserNamePrefix
- format:
- Run
docker-compose up -d
Open http://localhost:30000/ in your browswer to see live results while test is running, the jmeter logs are stored locally in $LOG_DIR
folder, and metrics data in the influx-grafana/influx-data
, so the historical data from previous test are kept and browseable in grafana.
- default user/password: admin/admin
Editing test script with Jmeter GUI locally
- Download latest jmeter https://jmeter.apache.org/download_jmeter.cgi (requires Java 8)
- You will also need the Webscockets Plugin:
- Download Jars: https://jmeter-plugins.org/get/ and https://jmeter-plugins.org/files/packages/websocket-samplers-1.2.8.zip (need to extract)
- Copy the jars to the
lib/ext
folder inside jmeter
- Open
jmeter.sh
|jmeter.bat
While editing, to make small tests and debug, disable Backend Listener
and enable View Results Tree/Table
to see the exact errors.
Credits
This work is based on scripts developed by the staff of RNP - Rede Nacional de Ensino e Pesquisa (https://www.rnp.br/en), the Brazilian NREN, in the context of stress testing ConferĂȘncia Web (https://conferenciaweb.rnp.br/).