Seleniumをプロキシ環境で実行する際に考慮した方がよさげなこと

【背景】
 私が現在利用している開発環境はAWS上に存在する。一方クライアント端末(Windowsのみ)は社内に存在している。自身の会社には社内プロキシが存在するため、HTTP通信は社内プロキシを通さないと通信を抜けさせてくれない。SSHでトンネリングさせる方法も最悪使えなくもないが、その場合通常の通信とは経路が若干異なるため出来るだけ通常の通信と同じ方法で接続させたいのと、社内法規上一応アウトなので素直にプロキシを通した通信にてSelenium実行をしている(SSHを許可してくれる時点でなんでもありな気はするが…)。
 プロキシを通す事によりうまくいかなかった事が色々あったので、覚えている範囲でさらしておきます(社内プロキシ関係ない部分も記載有り)。

【設定内容】
[Java]
Javaコントロールパネルの設定確認($JAVA_HOME/bin/javacpl.exe)
・[一般] - [ネットワーク設定] → プロキシ設定が想定通りかの確認
・[セキュリティ] - [例外サイトリスト] → セキュリティプロンプトを出さない様に設定

●(プロキシは直接関係ないが)Basic認証の設定($JAVA_HOME/lib/net.properties)
 jdk.http.auth.tunneling.disabledSchemesをコメントアウト

[Jenkins]
●[ノード] - [ノード名] - [起動方法] - [トンネル接続] - localhost:8080 とかに設定
●[グローバルセキュリティの設定] - [Agents] - [TCP port for JNLP agents] → 8080とかに固定化

[IE]
●[ツール] - [インターネットオプション] - [プロキシの設定] → プロキシの設定
 (Windows7の場合は)システムの設定や利用しているソフトが知らぬ間に内部的に参照している場合もあるため、IE使ってなくても対応必要有
 Windows10に関しては、現時点では知見無

[プロキシ]
Proxomitron, MAPEなどを利用
 FireFoxのプロキシポップアップを回避するために利用(∵FireFoxのプロキシがパスワードを記憶してくれないため)
 また、直接接続するより、プロキシソフトを利用して接続した方がログが見れたり、通信レベルでリトライしてくれたり、設定が実は効いてなかったり(主にeclipse)などを吸収できるので便利

[SSH転送]
●RLogin, TeraTermなどを利用
 masterとslabeの接続を維持するために必要
 (こちらはテスト処理とは関係ない部分なので許容)

[その他]
●各環境の環境変数
 http_proxyなどの設定があると、思わぬ挙動をする場合がある
 (ex. http_proxyを設定していると、ローカルアドレスの場合でも必ず当環境変数を参照してしまう。MAPEの設定を触っている際に当事象が発生していた。)


【参考リンク】
兵庫県電子入札共同運営システム:HTTPS トンネリングの Basic 認証無効化への対処
https://www.nyusatsu.e-hyogo.jp/hyogo/files/https_tunneling.pdf


[改訂第3版]Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

[改訂第3版]Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

Selenium実践入門 ―― 自動化による継続的なブラウザテスト (WEB+DB PRESS plus)

Selenium実践入門 ―― 自動化による継続的なブラウザテスト (WEB+DB PRESS plus)

エキスパートが教えるSelenium最前線 (CodeZine Digital First)

エキスパートが教えるSelenium最前線 (CodeZine Digital First)