WebRTC python unit tests inspired to '80s
Project description
VideoDrone
Test popular WebRTC Platforms with Selenium HQ and Python. Videodrone aims to be a lightweight build system for unit test orchestration. It simply manage "drone connector" with python multiprocessing.
At this moment only chrome driver was implemented and well tested on debian derivate distributions, fill free to contribute with your "drone connector", see section for further informations.
Setup
You need a fully working python3 pip environment, with virtualenv
installed in.
You can even use build.sh
to build your videodrone project.
Prepare environment
apt install python3-pip wget chromium unzip
pip3 install --upgrade pip
pip3 install virtualenv
wget https://raw.githubusercontent.com/peppelinux/videodrone/master/build.sh -O build.sh
bash build.sh VideoDrone
You can even install videodrone by hands.
mkdir VideoDrones && cd VideoDrones
virtualenv -ppython3 env && source env/bin/activate
pip install videodrone
Create the following directories before executing videodrone
.
- y4m, where your preferred y4m files resides. They will be used randomically.
mkdir y4ms
wget https://media.xiph.org/video/derf/y4m/students_cif.y4m -O y4ms/students_cif.y4m
- driver, where your selenium drivers resides.
Setup in LXC container
apt install lxc
CONTAINER_NAME=deb10
lxc-create -t download -n $CONTAINER_NAME -- -d debian -r buster -a armhf
lxc-start deb10
lxc-attach deb10
# then choose your preferred setup as show in the previous sections.
Docker Image
docker image build --tag videodrone .
# go in
# docker container run -it videodrone /bin/bash
# run the container with your preferred configuration
docker container run -dit -e VIDEODRONE_DRIVER=/usr/bin/chromedriver videodrone videodrone -room thatroom -c videodrone.drones.jitsi_chrome -y4m /VideoDrone/y4ms/ -lifetime 33 -n 4
Run
VIDEODRONE_DRIVER
environment variable can override the driver path settings.
example, this connector is configured to create a drone party to "https://meet.jit.si/thatroom":
VIDEODRONE_DRIVER=../VideoDrone.orig/drivers/videodrone -c "videodrone.drones.jitsi_chrome" -r peo -y4m ./y4ms/
There will be a party of 4 drones in "thatroom":
videodrone -room thatroom -c "videodrone.drones.jitsi_chrome" -y4m ./y4ms/ -n 4
Output
INFO:__name__:Started drone <Process name='Process-1' pid=25900 parent=25898 started>
INFO:__name__:Started drone <Process name='Process-2' pid=25960 parent=25898 started>
INFO:__name__:Started drone <Process name='Process-3' pid=26155 parent=25898 started>
INFO:__name__:Started drone <Process name='Process-4' pid=26373 parent=25898 started>
INFO:__name__:Drone destroyed
INFO:__name__:Drone destroyed
INFO:__name__:Drone destroyed
INFO:__name__:Drone destroyed
What happens
Drone Connectors
Drone connectors are selenium browser macros, written in python, as simple as possibile. See videodrone.drones.jitsi_drone for example. Drone connectors must be packaged and installed, them must be available through your PYTHONPATH (sys.path).
Credits
Fabio Farina (Garr Consortium), Massimo Carboni (Garr Consortium), Garrlab community.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file videodrone-0.7.8.post3.tar.gz
.
File metadata
- Download URL: videodrone-0.7.8.post3.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9643d9172f04553b558f59cf0d8f4f2fab784757521332b22e9497a03b6db82d |
|
MD5 | fd79f8463fc6be69fbcc129d4a536024 |
|
BLAKE2b-256 | 0f7a7f70361109f7cd3c2e6ad1f2aa5c6edd5765804eb192afdaa146bfbc7bec |