web-dev-qa-db-fra.com

Grille de sélénium: MaxSessions vs MaxInstances

Je me demandais si quelqu'un pouvait faire la lumière sur une question Selenium qui nous a un peu égratigné la tête.

Nous sommes confus quant à la signification de MaxSession et MaxInstances de Selenium Grid. Nous pensons que le MaxSession est le nombre total de sessions de test qui peuvent s'exécuter sur un seul nœud. Et nous pensons également que le MaxInstances est le nombre total de navigateurs qu'un test peut ouvrir.

Ou est MaxInstances le nombre total de navigateurs disponibles pour le nœud?

La commande que nous utilisons est:

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"

Nous pensons que la façon dont nous utilisons notre nœud (ci-dessus) est de 5 sessions de test simultanées par défaut.

Chaque test dispose-t-il de 20 navigateurs?

Ou chaque session de test partage-t-elle les 20 navigateurs (10 chrome/10 FF) dans un pool - avec les autres sessions de test?

59
Christian Clarke

Belle question .... je dirais que c'est un peu déroutant .... Mais j'essaierai d'y répondre en termes simples ..

MaxInstances Cela indique .... combien d'instances de la même version du navigateur peuvent s'exécuter sur le système distant.

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

Je peux donc exécuter 5 instances de Firefox 12 et 5 instances d'IE9 en même temps sur une machine distante. Ainsi, l'utilisateur total peut exécuter 10 instances de différents navigateurs (FF12 et IE9) en parallèle.

MaxSession Cela dit .... combien de navigateurs ( N'importe quel navigateur et n'importe quelle version) peut fonctionner en parallèle à la fois dans le système distant. Cela remplace donc les paramètres Max Instances et peut limiter le nombre d'instances de navigateur pouvant s'exécuter en parallèle.

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). 

Indépendamment des MaxInstances que vous avez définies.

Pour des informations plus claires, visitez - https://seleniumhq.github.io/docs/grid.html

112
Anuragh27crony

MaxInstances: cela vous donne plus d'emplacements par nœud, par exemple, MaxInstances=5 autorisera un maximum de 5 navigateurs par nœud

MaxSession: définit le nombre maximum de tests pouvant s'exécuter en même temps dans un nœud. si MaxInstances=5, alors MaxSession doit également être au moins égal à 5.

voir plus sur https://github.com/SeleniumHQ/docker-Selenium

0
capital Terefe

Pour développer réponse d'Anuragh27crony , j'ai établi un schéma rapide:

enter image description here

S'il s'agit de votre configuration de nœud, vous pouvez exécuter au plus 5 tests en parallèle, par exemple dans les combinaisons suivantes:

  • 3 * chrome, 2 * firefox
  • 2 * chrome, 2 * firefox, 1 * Edge
  • 5 * bord
  • 3 * chromé

Les combinaisons suivantes ne sont PAS possibles:

  • 4 * chrome (dépasse Chrome maxInstances)
  • 6 * Edge (dépasse maxSessions)
  • 3 * chrome, 3 * firefox (dépasse maxSessions)

Comme mentionné par Anuragh, MaxInstances s'applique à un navigateur spécifique, tandis que MaxSessions s'applique à l'ensemble du nœud.

0
PixelMaster