3

For many reasons, including security, our company cannot use external Selenium Grid provider like BrowserStack. So, I want to run SeleniumGrid in-house.

We are already running SeleniumHub with Selenium nodes on docker containers (Firefox, Chrome) and VMs (IE, Safari) and learned that:

  • scales well because it has decentralized registration of nodes: registration to Selenium Hub is delegated to Selenium nodes: each time a docker container with new Selenium node is added, Seleniun node is resposible for registering to the Selenium Hub. Therefore, we can use Marathon to scale up number of hosts with Selenium nodes.

  • on a downside, it consumes lots of memory, provides no centealized logs of browsers nor monitoring of resource consumption.

I have found a nice alternative: Selenoid+GoGridRouter. However, it does not scale so well because of centralized registration of nodes: when you want to add new host, you need to install Selenoid on it and register it in GoGridRouter (that plays the role of SeleniumHub in Selenoid world). This does not scale well and hinders running Selenoid with Marathon.

So I wonder:

  1. Is there a way to run Selenoid with decentralized registration?
  2. Or perhaps there is another library that has advantages of both libraries?

I have read one of the threads, and some people failed to run Selenoid on Marathon. The company behind Selenoid is working on integration with Kubernetes, however this is going to be an enterprise solution, so not very good for a proof of concept we wanted to try.

3
  • You can run your own Se Grid server and run tests on bunch of your own VMs (which you will have to maintain). Are you looking for an alternative Se Grid provider, who will do that for you? What else I am missing? May 10 '18 at 13:37
  • @PeterMasiar Yes, I am looking for alternative to SeGrid provider. We're already running docker containers and VMs with Selenium nodes, and scaling docker containers with Marathon. The good thing here is Selenium nodes register to SeleniumHub themselves so it scales nicely. Selenoid offers other things (centralized access to logs and monitoring, etc.) but has centrallized model of registration. If you want to add one more Selenoid node you need to do it in GoGridRouter (alterantive to SeleniumHub) configuration. I want combination of good things from SeleniumHub and Selenoid/GoGridRouter.
    – dzieciou
    May 10 '18 at 13:47
  • I will update my question
    – dzieciou
    May 10 '18 at 13:52
2

At my last employer we were unable to use selenium grid.
I can't remember what the reason was.

As an alternative we used CircleCI with 4 servers and it worked well, balanced the tests well between them, etc.

3
  • CircleCI is continous integration environment. I am looking for solution to scale Selenium Grid cluster.
    – dzieciou
    May 11 '18 at 8:48
  • Maybe update the title to better reflect that ? May 11 '18 at 11:35
  • 2
    Again i used Circle CI as an alternative solution to selenium grid and that's why I am suggesting it here. It may not work for you but it worked for us and it may work for others that find this question in the future. if you don't actually want an alternative to selenium grid, just a way to get selenium grid working maybe retitle to reflect that to get better aligned answers May 11 '18 at 11:38
0

You can run and scale the containers up with docker-compose.

1
  • Compose vs plain docker allows better scaling. Mar 4 '19 at 7:09
0

when you want to add new host, you need to install Selenoid on it and register it in GoGridRouter (that plays the role of SeleniumHub in Selenoid world).

I would research provision by code. I don't see a reason you cannot automate the installation of software and the registration part. Worst case you need Selenium to automate the configuration.

Research Infrastructure as code

If that doesn't work, all projects named are open source. Invest some time in extending them yourself.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.