Scaling up and performance features. #22
			
				
			
		
		
		
	| 
						 | 
				
			
			@ -0,0 +1,148 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
# Custom Selenium Grid-Node fro Jitsi Meet
 | 
			
		||||
# Pandian - https://community.jitsi.org/u/Pandian
 | 
			
		||||
# SwITNet Ltd © - 2020, https://switnet.net/
 | 
			
		||||
# GPLv3 or later.
 | 
			
		||||
 | 
			
		||||
#Check if user is root
 | 
			
		||||
if ! [ $(id -u) = 0 ]; then
 | 
			
		||||
   echo "You need to be root or have sudo privileges!"
 | 
			
		||||
   exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
WAN_IP="$(dig +short myip.opendns.com @resolver1.opendns.com)"
 | 
			
		||||
AV_SPACE="$(df -h .|grep -v File|awk '{print$4}'|sed -e 's|G||')"
 | 
			
		||||
 | 
			
		||||
echo -e "\n-- Make sure you have at least 20GB of disk space\n"
 | 
			
		||||
if [ $(echo "$AV_SPACE > 19" | bc) -ne 0 ]; then 
 | 
			
		||||
  echo "> Seems we have enough disk space."
 | 
			
		||||
else
 | 
			
		||||
  echo "> Please meet the minimum required disk space for this installer, exiting..."
 | 
			
		||||
  exit
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
apt-get update 
 | 
			
		||||
apt-get dist-upgrade -y
 | 
			
		||||
apt-get install -y \
 | 
			
		||||
                         gnupg \
 | 
			
		||||
                         bmon \
 | 
			
		||||
                         curl \
 | 
			
		||||
                         wget \
 | 
			
		||||
                         unzip \
 | 
			
		||||
                         maven \
 | 
			
		||||
                         openjdk-8-jdk
 | 
			
		||||
 | 
			
		||||
curl -fsSL https://get.docker.com -o get-docker.sh
 | 
			
		||||
sh get-docker.sh
 | 
			
		||||
 | 
			
		||||
curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
 | 
			
		||||
chmod +x /usr/local/bin/docker-compose
 | 
			
		||||
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
 | 
			
		||||
 | 
			
		||||
cd /opt
 | 
			
		||||
git clone https://github.com/jitsi/jitsi-meet-torture
 | 
			
		||||
cd /opt/jitsi-meet-torture/resources
 | 
			
		||||
wget -c https://media.xiph.org/video/derf/y4m/FourPeople_1280x720_60.y4m
 | 
			
		||||
cp FourPeople_1280x720_60.y4m FourPeople_1280x720_30.y4m
 | 
			
		||||
cd /opt
 | 
			
		||||
 | 
			
		||||
#150 "participants" available
 | 
			
		||||
## Tested up to 120 with AWS c5.24xlarge
 | 
			
		||||
cat << SELENIUM_GRID_DOCKER > selenium.yml
 | 
			
		||||
version: "3"
 | 
			
		||||
services:
 | 
			
		||||
  selenium-hub:
 | 
			
		||||
    image: selenium/hub:3.141.59-20200525
 | 
			
		||||
    container_name: selenium-hub
 | 
			
		||||
    ports:
 | 
			
		||||
      - "4444:4444"
 | 
			
		||||
      restart: always
 | 
			
		||||
  chrome:
 | 
			
		||||
      image: selenium/node-chrome:3.141.59-20200525
 | 
			
		||||
      volumes:
 | 
			
		||||
        - /dev/shm:/dev/shm
 | 
			
		||||
        - ./resources:/usr/share/jitsi-meet-torture/resources
 | 
			
		||||
      depends_on:
 | 
			
		||||
        - selenium-hub
 | 
			
		||||
      environment:
 | 
			
		||||
        - HUB_HOST=selenium-hub
 | 
			
		||||
        - HUB_PORT=4444
 | 
			
		||||
        - NODE_MAX_INSTANCES=30
 | 
			
		||||
        - NODE_MAX_SESSION=30
 | 
			
		||||
      restart: always
 | 
			
		||||
  chrome2:
 | 
			
		||||
      image: selenium/node-chrome:3.141.59-20200525
 | 
			
		||||
      volumes:
 | 
			
		||||
        - /dev/shm:/dev/shm
 | 
			
		||||
        - ./resources:/usr/share/jitsi-meet-torture/resources
 | 
			
		||||
      depends_on:
 | 
			
		||||
        - selenium-hub
 | 
			
		||||
      environment:
 | 
			
		||||
        - HUB_HOST=selenium-hub
 | 
			
		||||
        - HUB_PORT=4444
 | 
			
		||||
        - NODE_MAX_INSTANCES=30
 | 
			
		||||
        - NODE_MAX_SESSION=30
 | 
			
		||||
      restart: always
 | 
			
		||||
  chrome3:
 | 
			
		||||
      image: selenium/node-chrome:3.141.59-20200525
 | 
			
		||||
      volumes:
 | 
			
		||||
        - /dev/shm:/dev/shm
 | 
			
		||||
        - ./resources:/usr/share/jitsi-meet-torture/resources
 | 
			
		||||
      depends_on:
 | 
			
		||||
        - selenium-hub
 | 
			
		||||
      environment:
 | 
			
		||||
        - HUB_HOST=selenium-hub
 | 
			
		||||
        - HUB_PORT=4444
 | 
			
		||||
        - NODE_MAX_INSTANCES=30
 | 
			
		||||
        - NODE_MAX_SESSION=30
 | 
			
		||||
      restart: always
 | 
			
		||||
  chrome4:
 | 
			
		||||
      image: selenium/node-chrome:3.141.59-20200525
 | 
			
		||||
      volumes:
 | 
			
		||||
        - /dev/shm:/dev/shm
 | 
			
		||||
        - ./resources:/usr/share/jitsi-meet-torture/resources
 | 
			
		||||
      depends_on:
 | 
			
		||||
        - selenium-hub
 | 
			
		||||
      environment:
 | 
			
		||||
        - HUB_HOST=selenium-hub
 | 
			
		||||
        - HUB_PORT=4444
 | 
			
		||||
        - NODE_MAX_INSTANCES=30
 | 
			
		||||
        - NODE_MAX_SESSION=30
 | 
			
		||||
      restart: always
 | 
			
		||||
  chrome5:
 | 
			
		||||
      image: selenium/node-chrome:3.141.59-20200525
 | 
			
		||||
      volumes:
 | 
			
		||||
        - /dev/shm:/dev/shm
 | 
			
		||||
        - ./resources:/usr/share/jitsi-meet-torture/resources
 | 
			
		||||
      depends_on:
 | 
			
		||||
        - selenium-hub
 | 
			
		||||
      environment:
 | 
			
		||||
        - HUB_HOST=selenium-hub
 | 
			
		||||
        - HUB_PORT=4444
 | 
			
		||||
        - NODE_MAX_INSTANCES=30
 | 
			
		||||
        - NODE_MAX_SESSION=30
 | 
			
		||||
      restart: always
 | 
			
		||||
SELENIUM_GRID_DOCKER
 | 
			
		||||
 | 
			
		||||
docker-compose -f /opt/selenium.yml up -d
 | 
			
		||||
 | 
			
		||||
echo "Change the values acording to you testusing something like;"
 | 
			
		||||
echo "sudo bash /opt/jitsi-meet-torture/scripts/malleus.sh \\
 | 
			
		||||
                        --conferences=1 \\
 | 
			
		||||
                        --participants=30 \\
 | 
			
		||||
                        --senders=2 \\
 | 
			
		||||
                        --audio-senders=1 \\
 | 
			
		||||
                        --duration=120 \\
 | 
			
		||||
                        --room-name-prefix=hamertesting \\
 | 
			
		||||
                        --hub-url=http://localhost:4444/wd/hub \\
 | 
			
		||||
                        --instance-url=https://YOUR.JITSI-MEET-INSTANCE.DOMAIN
 | 
			
		||||
"
 | 
			
		||||
echo -e "\n-- If using 'hamertesting' you can join the room 
 | 
			
		||||
hamertesting0, hamertesting1, hamertestingN 
 | 
			
		||||
acording to the 'N' number of conferences set to watch the test."
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo -e "\n-- You can check the grid status at:
 | 
			
		||||
http://$WAN_IP:4444/grid/console
 | 
			
		||||
"
 | 
			
		||||
		Loading…
	
		Reference in New Issue