selenium-webdriverselenium-gridparallel-testing

All available processors of selenium node machines are not getting used in Selenium Grid


I am implementing parallel testing system using Selenium Grid architecture.

I added couple of nodes where each of them have 4 available processors with a hub machine, which has 2 available processors. But after running the test suite, only 2 test cases are running in 2 different sessions in node machines. All the other machines and their processors are lying idle.

For example, I have 4 node machines where each have 4 processors. So, in total I have 16 available processors. But only 2 sessions are getting created and all the 14 processors are remaining idle.

I am using Selenium Grid 4.7.2.
All the hub and node machines are on Windows OS.

The command I have run in the hub machine is:

java -jar "C:\SeleniumGrid\selenium-server-4.7.2.jar" hub

The command I have run in the node machine is:

java -jar "C:\SeleniumGrid\selenium-server-4.7.2.jar" node --hub {hub-machine-url} --max-sessions 4

All the nodes have been connected with the hub successfully.

I have also set the hub on another machine, where available processors are 16. In that case, 16 test cases are running concurrently in various node machines.
My question is, why does the running test case's amount is depending on the hub machine's available processor?

Can someone please help me out? Please let me know if you need any additional information.


Solution

  • I have found the solution. Answering it here if someone also gets confused over it.

    In Selenium Grid, the amount of sessions that can run concurrently depends on the number of processors available in the hub. Because the hub needs to continuously monitor the status and the result of the test case that is running on the node machine. Therefore, the hub's available processor is responsible for the number of concurrent sessions that can be run in the node machines.

    The node machine's available processor will only be responsible for the number of concurrent sessions that can be created on that node only. But if the hub machine has less processor available, then some of the session creation slots of that node machine will remain idle.

    The Selenium official doc has more details. I didn't read it properly. My bad!