Jenkins performance with 1000+ nodes - own device farm - testing

Hi i have a question according to Jenkins.
I want to create my own device farm with it.
For first simply example there will be 5, 6 nodes and i know that Jenkins will work perfectly with them.
But what if there will be 1000+ nodes? It is even possible? Are there another solution like Jenkins but for much much devices and nodes?
I fount aws-device-farm but i want my solution for that.
Target is to connect lot of devices with labels, and run tests on them, then get a result.

Related

Why don’t multiple cameras on my windows show up?

I'm trying to connect two cameras both with two lenses that are connected to two separate USB ports. the problem is that only one cam works at the time. Is that even possible? my goal is to connect multiple cameras to a single computer to run a command via python. any advice?
once I run the python command along with the script, a visualizer should pop up. The visualizer shows only on camera, but no the other. I am thinking its a power issue since one camera is receiving power and the other is not.
any idea?

Is it possible to run concurrent selenium test Suits against single Grid Hub?

Hey all
Is it possible to run concurrent selenium test Suits against single Grid Hub?
If yes is there any special configuration I need to set in order to enable it? If no is there any workaround you can think about?
My understanding of the question:
PC 1 : Test Suite 1
PC 2 : Test Suite 2
PC 3 : Selenium Grid Hub
Both PC 1 and PC 2 use PC 3 as a hub for their test suites execution.
But you haven't mentioned anything about the Nodes here.
Assuming PC 3 itself is the Node. And you have set your maxSession and maxInstances properly as per your test suites require, then the tests will run fine.
Please provide more information regarding the Node and the command/script you use to create the Nodes and Hub if you need further explanation.
If I read your question correctly, yes, this is the intention of grid. You can send as many concurrent test requests to the hub as you wish and the hub will distribute the requests to appropriate nodes, holding pending tests for an available node.
As far as configuration, you'll want to check out the wiki ( https://github.com/SeleniumHQ/selenium/wiki/Grid2 ) for full info, but specific configuration you are interested in is:
"maxSession": the number of parallel instances that can be run on the node/hub

Is there any way that I can bypass Selenium Grid's auto-selection process?

My Situation:
I have 60 dedicated selenium nodes that I use, in AWS. My Selenium Grid and all my Selenium Nodes are in the AWS. (cuts down network requests)
My Problem:
I am experiencing an issue when executing my regression suite. I run only 4 tests at a time due to our nightly servers only being able to handle so many tests going at it at once. The problem that i've diagnosed is that when using t1.micro instances, the CPU tops off when launching only 1 test per 1 node. I keep getting several timeouts. Fine. I can easily upgrade these to m1.small but it makes me think more about the way that the selenium grid selects it's nodes. Per my understanding, this is a quick getup on how the hub handles it's nodes.
So if we only have 4 tests running at a time, it will select the first four nodes. Once these nodes are finished running the tests, it will launch another test against the same instances. Is there any way that I can bypass this logic to just select a random available node rather than "the next one in queue"? I'm noticing that the X amount of nodes after the four nodes are NEVER being utilized.
Sidenote:
I have 60 nodes because this grid will have several different types of regression suites against it. Not only mine.
Edit (July 25, 2015)
A pull request was created for this functionality: https://github.com/SeleniumHQ/selenium/pull/832
This pull request should fix the issue
https://github.com/SeleniumHQ/selenium/pull/832

Developing over VPN connection on a virtual desktop

Other than the possible lag issues, has anyone tried this? What are the pros or cons associated with this?
A lot of times for me it's the limitations of the remote desktop connection, be it VNC or RDP or whatever. For examples:
My workstation has two monitors. Remotely viewing my workstation reduces it to one.
Lag is tolerable in the IDE, but not with anything image-heavy. Everything from photoshopping to web browsing is done locally, not on the remote machine.
Adding to #2, when splitting up tasks between the local and remote machine, there's that extra layer of getting the two to play nice together that adds just a little bit of overhead per task, which adds up to a lot overall. Something as simple as saving a file from the web browser and opening it in the IDE takes more steps.
(I may think of more and add them later.)
All in all, it's fine if the setup can be adjusted properly. In my experience, the companies I've worked for have defined their remote connection capabilities by the needs of someone other than the software developers, and thus leave us with little pet peeves that make the process just slightly more difficult than it needs to be.
Here is my take on it from my experiences
PROS: Single dev environment, only need to license one set of tools (if applicable)
CONS: The lag got the best of me. Typing to only have it show up 1 - 3 seconds later...sometimes, other times works great. In VS, the popup notifications sometimes take forever to display as well. Other cons would include if you have to share your desktop with another employee and possible moving files to/from the dev machine as RDP does not natively allow you to drag/drop files.
same as other posters - lag when using tools that affect screen painting for vstudio (resharper,coderush) is a real problem - some stuff involving the mouse (dragging grid columns) is very difficult to use
I'd add that about every 10-15 times when I go to log back in on the physical workstation at work, it takes the stupid thing about 2 minutes to finally succeed in refreshing the displays

Distributing requests to Selenium Grid RC's?

I've got a situation here where I have a central selenium grid hub, and several RC's running on my gogrid account. When I access it to run tests, it basically queues all the incoming test requests and executes them serially on only one of the RC's, instead of spreading them out to use available RC's. The tests come from multiple projects, so I'm not looking to parallelize the tests themselves, just to split the requests that come from multiple projects across the multiple RC's. From everything I've read, it seems like selenium grid should be doing this already, yet I only see one RC used to run every single test. Is there something I'm missing?
Do you have multiple RCs registered with the same environment? Each worker can currently only broadcast one environment and the hub assigns work to workers in a circular queue fashion (first registered gets work first).
http://selenium-grid.seleniumhq.org/configuring-and-tuning.html