bigbluebutton-Github/bigbluebutton-html5/tests/puppeteer
2020-10-02 09:27:31 -03:00
..
audio adds Virtualizedlist test (#9153) 2020-05-07 16:55:40 -04:00
breakout updates and fixes chat, notifications and presentation test suites 2020-08-13 23:41:14 -03:00
chat updates and fixes chat, notifications and presentation test suites 2020-08-13 23:41:14 -03:00
core adds webcams layout test suite 2020-09-09 12:51:56 -03:00
customparameters adjusts test timeout and changed css test file name 2020-08-28 09:42:27 -03:00
downloads Refactored base page and started chat saving test 2018-11-22 17:20:06 -02:00
notes fix shared notes automated test 2020-07-20 18:19:24 -03:00
notifications updates and fixes chat, notifications and presentation test suites 2020-08-13 23:41:14 -03:00
presentation updates and fixes chat, notifications and presentation test suites 2020-08-13 23:41:14 -03:00
screenshare adds audio, webcam and screen share specs to breakout automated test 2020-07-17 16:12:43 -03:00
screenshots Added Puppeteer tests 2018-10-03 13:32:53 -04:00
tests-not-ready Prevent linter from ignoring the test files + some linting. 2018-10-12 14:46:26 -04:00
user updates and fixes notifications test 2020-06-17 12:29:43 -03:00
virtualizedlist fixes virtualized users list automated test 2020-07-20 19:01:25 -03:00
webcam adds webcams layout test suite 2020-09-09 12:51:56 -03:00
whiteboard removes TODO comments 2020-02-26 10:48:34 -03:00
.env-template enableScreenSharing() test spec 2020-06-15 16:23:45 -03:00
.gitignore enableScreenSharing() test spec 2020-06-15 16:23:45 -03:00
all.test.js adds webcams layout autotest to all.test.js 2020-10-02 09:27:31 -03:00
audio.obj.js exports tests as objects and defines jest syntax from new test files 2020-08-05 15:44:17 -03:00
audio.test.js rewrite test files to execute imported test specs as objects 2020-08-05 17:12:57 -03:00
breakout.obj.js updates and fixes chat, notifications and presentation test suites 2020-08-13 23:41:14 -03:00
breakout.test.js rewrite test files to execute imported test specs as objects 2020-08-05 17:12:57 -03:00
chat.obj.js updates and fixes chat, notifications and presentation test suites 2020-08-13 23:41:14 -03:00
chat.test.js rewrite test files to execute imported test specs as objects 2020-08-05 17:12:57 -03:00
customparameters.obj.js adjusts test timeout and changed css test file name 2020-08-28 09:42:27 -03:00
customparameters.test.js rewrite test files to execute imported test specs as objects 2020-08-05 17:12:57 -03:00
jest.config.js added autoJoin custom parameter test spec 2020-06-15 16:07:10 -03:00
jest.setup.js Getting rid of puppeteer timeouts for now 2018-11-23 12:43:35 -02:00
notifications.obj.js updates and fixes chat, notifications and presentation test suites 2020-08-13 23:41:14 -03:00
notifications.test.js rewrite test files to execute imported test specs as objects 2020-08-05 17:12:57 -03:00
package-lock.json exports tests as objects and defines jest syntax from new test files 2020-08-05 15:44:17 -03:00
package.json updates and fixes chat, notifications and presentation test suites 2020-08-13 23:41:14 -03:00
params.js Prevent linter from ignoring the test files + some linting. 2018-10-12 14:46:26 -04:00
presentation.obj.js updates and fixes chat, notifications and presentation test suites 2020-08-13 23:41:14 -03:00
presentation.test.js rewrite test files to execute imported test specs as objects 2020-08-05 17:12:57 -03:00
README.md adds memory metrics 2020-02-17 15:40:05 -03:00
run.sh adds webcams layout test suite 2020-09-09 12:51:56 -03:00
screenshare.obj.js exports tests as objects and defines jest syntax from new test files 2020-08-05 15:44:17 -03:00
screenshare.test.js rewrite test files to execute imported test specs as objects 2020-08-05 17:12:57 -03:00
sharednotes.obj.js exports tests as objects and defines jest syntax from new test files 2020-08-05 15:44:17 -03:00
sharednotes.test.js rewrite test files to execute imported test specs as objects 2020-08-05 17:12:57 -03:00
user.obj.js exports tests as objects and defines jest syntax from new test files 2020-08-05 15:44:17 -03:00
user.test.js rewrite test files to execute imported test specs as objects 2020-08-05 17:12:57 -03:00
virtualizedlist.obj.js updates and fixes chat, notifications and presentation test suites 2020-08-13 23:41:14 -03:00
virtualizedlist.test.js rewrite test files to execute imported test specs as objects 2020-08-05 17:12:57 -03:00
webcam.obj.js exports tests as objects and defines jest syntax from new test files 2020-08-05 15:44:17 -03:00
webcam.test.js rewrite test files to execute imported test specs as objects 2020-08-05 17:12:57 -03:00
webcamlayout.obj.js adds webcams layout test suite 2020-09-09 12:51:56 -03:00
webcamlayout.test.js adds webcams layout test suite 2020-09-09 12:51:56 -03:00
whiteboard.obj.js exports tests as objects and defines jest syntax from new test files 2020-08-05 15:44:17 -03:00
whiteboard.test.js rewrite test files to execute imported test specs as objects 2020-08-05 17:12:57 -03:00

BigBlueButton Puppeteer Tests

Tests for BigBlueButton using Puppeteer, Chromium and Jest.

Setup

To run these tests, you will need the following:

  • Ubuntu 16.04 or later
  • Node.js 8.11.4 or later
  • Docker

These instructions assume you have the BigBlueButton repository cloned into a directory named bigbluebutton.

First, you need to have the dependencies installed with meteor npm install, from the bigbluebutton-html5 directory. When Puppeteer installs, it will automatically install the Chromium browser in which the tests will run.

To run individual tests, you can also optionally install Jest globally with sudo npm install jest -g.

Running the tests with an existing BigBlueButton server

To run these tests with an existing BigBlueButton server, make sure you have a server set up, and that you have the server's URL and secret. These will be the same URL and secret you would use to make API calls to the server. If you do not have these, you can find them by running bbb-conf --secret from the terminal in the server.

Copy the .env-template file to a new file, and name it .env. In the .env file, add your BigBlueButton server URL and secret, so the tests will know which server to connect to.

To run all the tests at once, run npm test. If you have Jest installed globally, you can run individual tests with jest TEST [TEST...]. The tests are found in the .test.js files, but you may choose to omit file extensions when running the tests.

To run the tests and get their metrics, you will need to add inside .env file METRICS_FOLDER="/tmp/bbb-metrics" and BBB_COLLECT_METRICS=true; if BBB_COLLECT_METRICS receives true, the metrics will be generated at the end of the test inside /tmp/bbb-metrics folder.

Running the tests in a Docker container

Using this method, you can run the tests with the latest version of the HTML5 client, which you can find in this repository. You will need Docker to run tests this way. To run the tests, just run ./test-html5.sh from the bigbluebutton/bigbluebutton-html5 directory. The script will start a Docker container with a BigBlueButton server and the source code for the HTML5 client, and will run the tests with this server before stopping and removing the container.

Note

The HTML5 client takes a long time to start in the Docker container. The script will check if the HTML5 client is running before running the tests, but it will exit if it takes too many attempts. If the HTML5 client takes too long to start and the check exits without running the tests, you can experiment with the values of maxRetries and retryDelay in html5-check.js. Note that the value of retryDelay is in milliseconds.

Known Issues

  • Hotkeys do not work yet. When hotkeys are pressed, keydown and keyup events are fired, but the click events that would normally be created to press buttons do not occur.
  • Some tests will sometimes fail with a timeout error. Different tests may fail every time the tests are run. This problem affects all tests, and the cause is unknown as of now.