Pitaliumをつかってみた 〜 サーバ周りのお話し 〜
今回はSelenium HubとNodeについてです。概ね想定できる設定について、主な設定箇所と注意するべきポイントをまとめてみました。どのような環境で構築したら良いのか、テスト環境構築方針を考慮する参考にして下さい。
HubとNodeが同一サーバで稼働している場合
この場合、明示的にHubとNodeを分けてサーバを起動させる必要はありません。

実行方法も、以下の通りコマンドラインから稼働させる事が出来ます。
java -jar selenium-server-standalone-2.48.2.jar
ただ、外部からのNode接続がある、もしくは今後その想定である場合はHubとNodeで分けた方が良いでしょう。
HubとNodeがリモートサーバ側にある場合
テスト環境からみて、Seleniumサーバが外部に存在する場合です。このケースではHubとNodeサーバを設定した方が良いでしょう。

Hubの起動
java -jar selenium-server-standalone-2.48.2.jar -role hub
Nodeの起動
java -jar selenium-server-standalone-2.48.2.jar \
-role node \
-nodeConfig NodeConfigBrowser.json \
-Dwebdriver.chrome.driver=chromedriver
ケース図でのnodeConfig設定 NodeConfigBrowser.json
{
"capabilities": [
{
"browserName": "firefox",
"maxInstances": 3,
"seleniumProtocol": "WebDriver"
},
{
"browserName": "chrome",
"maxInstances": 3,
"seleniumProtocol": "WebDriver"
},
{
"browserName": "safari",
"maxInstances": 3,
"seleniumProtocol": "WebDriver"
}
],
"configuration": {
"hub": "http://192.168.0.100:4444/grid/register"
}
}
テスト環境では、リモートに接続する設定が必要になります。
environmentConfig.json
環境設定をHubのアドレスに設定します。
{
"hubHost": "192.168.0.100",
"hubPort": 4444
}
capabilities.json
プラットフォーム指定は対象のサーバに合わせて下さい。
[
{
"platform": "LINUX",
"browserName": "chrome"
}
]
HubとNodeがリモートサーバ側にあり、さらにNodeが別のサーバの場合
Hubが確定してしまえばNodeがどこに増えたとしても基本的には同じです。

Nodeサーバの設定では configuration
項目で hub
のアドレスを正しく設定します。
ただしテスト環境の capabilities.json
ファイルでは注意が必要です。上記の例だとMac環境がSafariになっていますので、platformは MAC
とする必要があります。
[
{
"platform": "MAC",
"browserName": "safari"
},
{
"platform": "LINUX",
"browserName": "chrome"
},
{
"platform": "LINUX",
"browserName": "firefox"
}
]
このようにテストが行なえるノードを確認しておかないと、接続できなくなる(対象のNodeがない)と言うことになりかねません。
まとめ
簡単にサーバ設定をみていきましたが、いかがでしたでしょうか?本番環境と等しく、あらかじめテストのためのサーバ構成を考慮することは大事です。参考にしてください。
Pitaliumに関する過去の記事はこちら
コメントは受け付けていません。