少し頭を悩ませているSelenium
の質問に誰かが光を当てられるかどうか疑問に思っていました。
Selenium GridのMaxSession
とMaxInstances
の意味について混乱しています。 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)を他のテストセッションと共有しますか?
良い質問....私はそれが少し混乱していると言うでしょう....しかし、簡単な言葉で答えようとします.
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 をご覧ください。
MaxInstances
:これはノードごとにより多くのスロットを与えます。例えば、MaxInstances=5
は、ノードごとに最大5つのブラウザーを許可します
MaxSession
:ノードで同時に実行できるテストの最大量を設定します。 if MaxInstances=5
、その後、MaxSessionは少なくとも5でなければなりません。
Anuragh27crony's answer を拡張するために、簡単な図を作成しました。
これがノード構成の場合、たとえば次の組み合わせで、最大5つのテストを並行して実行できます。
次の組み合わせは使用できません。
Anuraghが述べたように、MaxInstancesは特定のブラウザーに適用され、MaxSessionsはノード全体に適用されます。