web-dev-qa-db-ja.com

Selenium Grid:MaxSessionsとMaxInstances

少し頭を悩ませているSeleniumの質問に誰かが光を当てられるかどうか疑問に思っていました。

Selenium GridのMaxSessionMaxInstancesの意味について混乱しています。 MaxSessionは、単一のノードで実行できるテストセッションの総数であると考えています。また、MaxInstancesは、テストで開くことができるブラウザーの総数であると考えています。

または、MaxInstancesはノードで使用可能なブラウザーの総数ですか?

使用しているコマンドは:

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"

ノード(上記)の使用方法は、デフォルトで5つの同時テストセッションだと思います。

各テストには20のブラウザがありますか?

または各テストセッションは、プール内の20のブラウザー(10クロム/ 10 FF)を他のテストセッションと共有しますか?

59

良い質問....私はそれが少し混乱していると言うでしょう....しかし、簡単な言葉で答えようとします.

MaxInstancesこれは、...同じバージョンのブラウザのインス​​タンスがリモート上で実行できる数システム。

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

したがって、Firefox 12の5つのインスタンスとIE9の5つのインスタンスをリモートマシンで同時に実行できます。したがって、合計ユーザーは、異なるブラウザー(FF12とIE9)の10個のインスタンスを並行して実行できます。

MaxSessionこれは、...ブラウザ数(任意のブラウザそして、どのバージョン)もリモートシステムで同時に並行して実行できます。そのため、これにより、最大インスタンス設定が上書きされ、並行して実行できるブラウザインスタンスの数を制限できます。

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

定義したMaxInstancesに関係なく。

より明確な情報については、 https://seleniumhq.github.io/docs/grid.html をご覧ください。

112
Anuragh27crony

MaxInstances:これはノードごとにより多くのスロットを与えます。例えば、MaxInstances=5は、ノードごとに最大5つのブラウザーを許可します

MaxSession:ノードで同時に実行できるテストの最大量を設定します。 if MaxInstances=5、その後、MaxSessionは少なくとも5でなければなりません。

詳しくは https://github.com/SeleniumHQ/docker-Selenium

0
capital Terefe

Anuragh27crony's answer を拡張するために、簡単な図を作成しました。

enter image description here

これがノード構成の場合、たとえば次の組み合わせで、最大5つのテストを並行して実行できます。

  • 3 *クロム、2 * Firefox
  • 2 *クロム、2 * Firefox、1 *エッジ
  • 5 *エッジ
  • 3 *クロム

次の組み合わせは使用できません。

  • 4 * chrome(exceeds Chrome maxInstances)
  • 6 *エッジ(maxSessionsを超える)
  • 3 *クロム、3 * Firefox(maxSessionsを超える)

Anuraghが述べたように、MaxInstancesは特定のブラウザーに適用され、MaxSessionsはノード全体に適用されます。

0
PixelMaster