Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Coc.nvim | 22,474 | 82 | 263 | 6 days ago | 97 | September 19, 2022 | 41 | other | TypeScript | |
Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers. | ||||||||||
Whistle | 11,949 | 11 | 17 | a day ago | 539 | September 13, 2022 | 25 | mit | JavaScript | |
HTTP, HTTP2, HTTPS, Websocket debugging proxy | ||||||||||
Nebula | 11,412 | 30 | 3 days ago | 45 | June 30, 2022 | 144 | mit | Go | ||
A scalable overlay networking tool with a focus on performance, simplicity and security | ||||||||||
Gtop | 9,326 | 3 | a month ago | 15 | January 12, 2022 | 35 | mit | JavaScript | ||
System monitoring dashboard for terminal | ||||||||||
Threatmapper | 3,304 | 13 hours ago | 5 | August 10, 2022 | 161 | apache-2.0 | Go | |||
Open source cloud native security observability platform. Linux, K8s, AWS Fargate and more. | ||||||||||
Node Docker Good Defaults | 2,161 | 2 months ago | 7 | mit | JavaScript | |||||
sample node app for Docker examples | ||||||||||
Flightplan | 1,789 | 305 | 35 | 4 years ago | 53 | June 23, 2019 | 20 | mit | JavaScript | |
Run sequences of shell commands against local and remote hosts. | ||||||||||
Cloudcmd | 1,638 | 38 | 5 | 13 days ago | 418 | July 11, 2022 | 22 | mit | JavaScript | |
✨☁️📁✨ Cloud Commander file manager for the web with console and editor. | ||||||||||
Vynchronize | 1,151 | 3 months ago | 59 | mit | JavaScript | |||||
Watch videos with friends online with the new real time video synchronization platform | ||||||||||
Kubectl Node Shell | 901 | 2 months ago | 11 | apache-2.0 | Shell | |||||
Exec into node via kubectl |
Selenium Grid Router is a lightweight server that routes and proxies Selenium Wedriver requests to multiple Selenium hubs.
There is a smaller and faster Golang implementation of this server. See aerokube/ggr for more details.
If you're frequently using Selenium for running your tests in browsers you may notice that a standard Selenium Grid installation has some faults that can prevent you from using it on large scale:
The basic idea is very simple:
Currently we maintain only Debian packages. To install on Ubuntu ensure that you have Java 8 installed:
# add-apt-repository ppa:webupd8team/java
# apt-get update
# apt-get install oracle-java8-installer
Then install Gridrouter itself:
# add-apt-repository ppa:yandex-qatools/gridrouter
# apt-get update
# apt-get install yandex-grid-router
# service yandex-grid-router start
Configuration files are located in /etc/grid-router/
directory, XML quota files - by default in /etc/grid-router/quota/
, log files reside in /var/log/grid-router/
, binaries are installed to /usr/share/grid-router
.
Two types of configuration files exist:
A typical file looks like this:
alice:alicePassword, user
bob:bobPassword, user
As you can see passwords are NOT encrypted. This is because we consider quotas as a way to easily limit Selenium browsers consumption and not a restrictive tool.
This file has the following format:
<qa:browsers xmlns:qa="urn:config.gridrouter.qatools.ru">
<browser name="firefox" defaultVersion="33.0">
<version number="33.0">
<region name="us-west">
<host name="my-firefox33-hub-1.example.com" port="4444" count="5"/>
</region>
<region name="us-east">
<host name="my-firefox33-hub-2.example.com" port="4444" count="5"/>
</region>
</version>
<version number="37.0">
<region name="us-west">
<host name="my-firefox37-hub-1.example.com" port="4444" count="3"/>
<host name="my-firefox37-hub-2.example.com" port="4444" count="4"/>
</region>
<region name="us-east">
<host name="my-firefox37-hub-3.example.com" port="4444" count="2"/>
</region>
</version>
</browser>
<browser name="chrome" defaultVersion="42.0">
<version number="42.0">
<region name="us-west">
<host name="my-chrome42-hub-1.example.com" port="4444" count="10"/>
</region>
<region name="us-east">
<host name="my-chrome42-hub-2.example.com" port="4444" count="10"/>
</region>
</version>
</browser>
</qa:browsers>
What we basically do in this file - we enumerate hub hosts, ports and counts of browsers available on each hub. We also distribute hosts across regions, i.e. we place hosts from different datacenters in different <region> tags. The most important thing is to make sure that browser name and browser version have exactly the same value as respective Selenium hub does.
Grid router is using BASIC HTTP authentication. That means that for the majority of test frameworks connection URL would be:
http://username:[email protected]:4444/wd/hub
However some Javascript test frameworks have their own ways to specify connection URL, user name and password.
When you request a browser by specifying its name and version Grid Router does the following:
Our experience shows that Grid Router works better with a big set of "small" hubs (having no more than 5 connected nodes) than with some "big" hubs. A good idea is to launch small virtual machines (with 1 or 2 virtual CPUs) containing one Selenium hub process 4-5 Selenium node processes that connect to localhost. This gives us the following profit:
We're using Docker and Ansible for integration tests so you need to install them on your Mac or Linux.
brew install ansible
touch /usr/local/etc/ansible/hosts
echo 'localhost ansible_python_interpreter=/usr/local/bin/python' >> /usr/local/etc/ansible/hosts
pip install requests[security]
pip install -Iv https://pypi.python.org/packages/source/d/docker-py/docker-py-1.1.0.tar.gz
boot2docker up
boot2docker ip
/etc/hosts
: <boot2docker_ip> boot2docker
$(boot2docker shellinit)
export DOCKER_HOST=tcp://boot2docker:2376
mvn clean package
ansible-playbook testing/start.yml
docker ps -a
$ ansible-playbook testing/test.yml
$ ansible-playbook testing/stop.yml