Prerequisites
The main requirement will be that the server from which the plugin is run is capable of connecting to the URLs of the websites it is going to monitor.
This plugin has 4 different methods to execute for each transaction, so you will have to adjust the requirements to the desired execution mode for each case.
Local driver
The plugin will use the drivers for Google Chrome or Mozilla Firefox that are on the computer where the plugin is running. By default, these components will be searched in the following routes, although different ones can be specified if necessary:
- Google Chrome binary: /usr/share/pandora_server/util/selenium_headless_drivers/chrome/google-chrome
- Chromedriver: /usr/share/pandora_server/util/selenium_headless_drivers/chromedriver
- Mozilla Firefox binary: /usr/share/pandora_server/util/selenium_headless_drivers/firefox/firefox
- Geckodriver: /usr/share/pandora_server/util/selenium_headless_drivers/geckodriver
These drivers can be downloaded from the Pandora FMS library in a package and unzipped to the default path:
https://pandorafms.com/library/selenium-4-discovery/
In order for browsers to start in this mode, their specific dependencies installed on the system will also be necessary:
- For Mozilla Firefox: gtk3, alsa-lib, libX11-xcb
- For Google Chrome: nss, libdrm, mesa-libgbm
Remote driver
The plugin will connect to a Selenium 4 server indicated by its URL, so it will be necessary to have access from the server that runs the plugin to the Selenium 4 server through the port it is listening on (by default 4444 TCP) .
Local Docker
The plugin will start a Docker container on the server where it runs using an image that contains the drivers indicated for the "local driver" mode, allowing dependencies to be abstracted from the real computer.
By default, the "pandorafms/pandora_selenium_headless" image will be used (although it will be possible to indicate a different one for each execution), and the drivers will be searched within docker in the following paths:
- Google Chrome binary: /tmp/lib/chrome/google-chrome
- Chromedriver: /tmp/lib/chromedriver
- Mozilla Firefox binary: /tmp/lib/firefox/firefox
- Geckodriver: /tmp/lib/geckodriver
Remote Docker
The plugin will connect via SSH with username and password to a remote server, where it will run a copy of the plugin itself (copied at the time) in local docker mode.
Therefore, along with the requirements of the previous mode, connectivity with the remote server via SSH must also be allowed with the credentials indicated on the indicated port (by default 22 TCP).
The user indicated for the SSH connection must have sufficient permissions to start the Docker container and access the files copied to the temporary directory.
A temporary directory will be used to copy the files to the remote server (by default "/tmp"), although a different path can be indicated in each execution.
Optional requirements
For all execution modes it will be possible to use Google Chrome or Mozilla Firefox profiles for each transaction. If you use this feature, you must ensure that the routes to said profiles are found on the server where the transaction is launched (whether remote or local).
In Docker run modes, the host server must have the paths to the profile folders, since the plugin will mount these folders as volumes of the container it starts.
It will also be possible to monitor connection statistics to the main URL of the SIDE indicated in each execution. To do this, it will be necessary to have the "curl" executable installed on the computer where the plugin is launched. It should be taken into account that if the test execution is carried out in remote driver mode, the statistics will not be obtained from the Selenium 4 server, but from the server that runs the plugin.