webentwicklung-frage-antwort-db.com.de

Selenium Grid: MaxSessions vs MaxInstances

Ich habe mich gefragt, ob jemand etwas Licht in eine Selenium - Frage bringen kann, die uns ein bisschen am Kopf kratzt.

Wir sind verwirrt über die Bedeutung von MaxSession und MaxInstances von Selenium Grid. Wir glauben, dass MaxSession die Gesamtzahl der Testsitzungen ist, die auf einem einzelnen Knoten ausgeführt werden können. Wir glauben auch, dass MaxInstances die Gesamtzahl der Browser ist, die ein Test öffnen kann.

Oder ist MaxInstances die Gesamtzahl der für den Knoten verfügbaren Browser?

Der Befehl, den wir verwenden, ist:

Java -Xrs -jar Selenium-server.jar -role node -port 44506 -hub http://localhost:44500
/grid/register -firefoxProfileTemplate SeleniumProfile -timeout 300000 -browser 
"browserName=firefox,maxInstances=10,platform=ANY,seleniumProtocol=WebDriver" -browser 
"browserName=chrome,maxInstances=10,platform=ANY,seleniumProtocol=WebDriver"

Wir glauben, dass die Art und Weise, wie wir unseren Knoten (oben) verwenden, standardmäßig 5 gleichzeitige Testsitzungen umfasst.

Stehen jedem Test 20 Browser zur Verfügung?

Oder teilt sich jede Testsitzung die 20 Browser (10 Chrome/10 FF) in einem Pool - mit den anderen Testsitzungen?

59

Schöne Frage .... ich würde sagen, es ist etwas verwirrend .... Aber ich werde versuchen, es in einfachen Worten zu beantworten ..

MaxInstances Hier wird angegeben, wie viele Instanzen derselben Browserversion über das Remote-System ausgeführt werden können.

For example, i have a FF12,IE and i declared the command as follows
-browser browserName=firefox,version=12,maxInstances=5,platform=LINUX
-browser browserName=InternetExplorer,version=9.0,maxInstances=5,platform=LINUX

So kann ich gleichzeitig 5 Instanzen von Firefox 12 und 5 Instanzen von IE9 auf dem Remote-Computer ausführen. Somit kann der Benutzer insgesamt 10 Instanzen verschiedener Browser (FF12 und IE9) gleichzeitig ausführen.

MaxSession Hier steht, wie viele Browser ( Jeder Browser und jede Version) kann auf dem fernen System gleichzeitig ausgeführt werden. Dadurch werden die Einstellungen für die maximale Anzahl von Instanzen überschrieben und die Anzahl der Browserinstanzen kann eingeschränkt werden, die gleichzeitig ausgeführt werden können.

For above example, when maxSession=1 forces that you never have more than 1 browser running. 

With maxSession=2 you can have 2 Firefox tests at the same time, or 1 Internet Explorer and 1 Firefox test). 

Unabhängig davon, welche MaxInstances Sie definiert haben.

Weitere Informationen finden Sie unter - https://seleniumhq.github.io/docs/grid.html

112
Anuragh27crony

MaxInstances: Dadurch erhalten Sie mehr Slots pro Knoten. Beispiel: MaxInstances=5 erlaubt maximal 5 Browser pro Knoten

MaxSession: Legt die maximale Anzahl von Tests fest, die gleichzeitig in einem Knoten ausgeführt werden können. ob MaxInstances=5, dann sollte MaxSession auch mindestens 5 sein.

weitere Informationen finden Sie unter https://github.com/SeleniumHQ/docker-Selenium

0
capital Terefe

Um auf Anuragh27crony's answer einzugehen, habe ich ein kurzes Diagramm erstellt:

enter image description here

Wenn dies Ihre Knotenkonfiguration ist, können Sie höchstens 5 Tests parallel ausführen, z. B. in den folgenden Kombinationen:

  • 3 * Chrom, 2 * Firefox
  • 2 * Chrom, 2 * Firefox, 1 * Kante
  • 5 * Kante
  • 3 * chrom

Folgende Kombinationen sind NICHT möglich:

  • 4 * chrome (übertrifft Chrome maxInstances)
  • 6 * Edge (überschreitet maxSessions)
  • 3 * Chrom, 3 * Firefox (übersteigt maxSessions)

Wie von Anuragh erwähnt, gilt MaxInstances für einen bestimmten Browser, während MaxSessions für den gesamten Knoten gilt.

0
PixelMaster