Selenium Server + Internet Explorer Driver Serverが不安定です。

2,427 views
Skip to first unread message

Norifumi Masuda

unread,
Jan 28, 2015, 7:01:28 AM1/28/15
to selen...@googlegroups.com
はじめまして、最近Selenium2の評価を始めた増田と申します。
みなさま、よろしくお願いします。

現在 Selenium Webdriver(Linux) → Selenium Server + Internet Explorer Driver Server(WindowsServer2008R2)の構成で評価を行っております。
評価を行う際、WindowsServerへリモートデスクトップ接続し、Selenium Serverを起動 → リモートデスクトップのウィンドウを維持したままテストを行うと
問題無いのですが、リモートデスクトップのセッションを維持したまま(ログオフせずXボタンで)ウィンドウを閉じ、テストを行うと通常30秒程度で終わるシナリオが3分以上掛かってしまいます。
(シナリオは流し終わっているが、IE11の終了処理で何かしらのタイムアウト待ちをしている?)

また、タスクスケジューラにSelenium Serverを登録し、サーバ起動時にSelenium Serverを起動してテストを行うとIE11のプロセスがゾンビ化したり、CPU使用率100%で暴走する事があります。
将来的には、Jenkinsでテストスクリプトを実行し、テスト自動化を実現したいと考えておりますが、上記の現象にぶつかり頭を抱えております。

上記現象につきまして、解決策や事例等ございましたら、ご教示頂ければ幸いです。
宜しくお願い致します。

環境構成は、以下となります。
■Selenium Webdriver
OS: Amazon Linux x64
selenium-webdriver: selenium-webdriver-2.44.0.gem
rspec:
rspec-3.1.0.gem

■Selenium Server
OS:
Microsoft Windows Server 2008 R2 Base
Java SE Development Kit: jdk-7u75-windows-x64
Selenium Server: selenium-server-standalone-2.44.0.jar(64bit)
Internet Explorer Driver Server:
IEDriverServer_x64_2.44.0
IE Version:
Internet Explorer 11

伊藤望

unread,
Feb 3, 2015, 3:37:35 AM2/3/15
to selen...@googlegroups.com
増田さん

伊藤です。ご返信が遅れましたが、はじめまして。

>リモートデスクトップのセッションを維持したまま(ログオフせずXボタンで)
>ウィンドウを閉じ、テストを行うと通常30秒程度で終わるシナリオが
>3分以上掛かってしまいます。
「64bitのIEDriverServer.exeを使っているとsendKeysが遅くなる」現象かも?
とも思いましたが、はっきりしたところは分かりません..
Selenium Serverをお使いでしたら、
- Selenium Server起動時に-logオプションを指定してログを出力
- クライアントマシン側のログを確認
などの方法で、どこの処理に時間がかかっているか分かるのではないでしょうか。
あとは、リモートデスクトップでなくVNCによる接続方法なら、
うまくいくなどあるかもしれません。

>また、タスクスケジューラにSelenium Serverを登録し、サーバ起動時に
> Selenium Serverを起動してテストを行うとIE11のプロセスがゾンビ化したり、
> CPU使用率100%で暴走する事があります。

- WebDriver.quitメソッドは、テスト成功・失敗によらず
   呼ばれるようになっているでしょうか。
- selenium serverに-role nodeオプションを指定していれば
   timeoutやbrowserTimeoutなどのオプションでテストを打ち切れますが、
   IEのプロセスが残った場合には結局そのままになってしまう気がします。
- テスト終了時にiexplore.exeのプロセスを強制的に毎回killをするという
   荒技はありそうです。
- Selenium-Grid-ExtrasにはブラウザインスタンスをKillする機能がついているようですが、
   使ったことが無いので詳しくは分かりません..

あまりお力になれそうにないですが、私が思いつくのはこれくらいです。

Norifumi Masuda

unread,
Feb 4, 2015, 11:47:35 PM2/4/15
to selen...@googlegroups.com
伊藤さん

ご返信有難うございます。

アドバイス頂いた内容を元に、Selenium Serverでデバッグログ出力&ログ保存をするように
起動オプションを変更し、確認したところ、スクリーンショットの処理毎に約38秒のリードタイムが発生していることが分かりました。
テストスクリプトの中で複数回スクリーンショット処理を呼び出していたため、結果的に3分以上テスト実行時間が伸びていたようです。
また、スクリーンショットのファイルを確認したところ、ファイルは作成されているもののWEB画面は記録されておりませんでした。
Internet Explorer Driver Serverの仕様は分かりませんが、リモートデスクトップを切断したことにより、WindowsServer側で画面描画に変化があり、その影響を受けているのかもしれません。

アドバイス頂いたVNCなどリモートデスクトップ以外でSelenium Serverを起動した場合に、どうなるか検証してみたいと思います。


- テスト終了時にiexplore.exeのプロセスを強制的に毎回killをするという
   荒技はありそうです。
- Selenium-Grid-ExtrasにはブラウザインスタンスをKillする機能がついているようですが、
   使ったことが無いので詳しくは分かりません..
スクリーンショット処理をコメントアウトしたら、ゾンビ化やプロセス暴走が発生しなくなりましたが、
将来的に必要そうな情報ですので、色々と調べてみたいと思います。

貴重なご助言有難うございました。

2015年2月3日火曜日 17時37分35秒 UTC+9 伊藤望:

伊藤望

unread,
Feb 5, 2015, 12:54:47 AM2/5/15
to selen...@googlegroups.com
増田さん

スクリーンショットに時間がかかっていたのですね。なぜでしょう。。
IEDriverでスクリーンショットが記録されていないことについては、
こちらにVNCで問題を回避する玉川さんの記事がありますので、参考になるかと思います。

Norifumi Masuda

unread,
Feb 5, 2015, 9:21:05 PM2/5/15
to selen...@googlegroups.com
伊藤さん

情報ありがとうございます!
まさしく、探していた情報です。

頂いたURLの内容とIssue3536のやりとりを確認して、VNCを試してみたところ、うまくスクリーンショットが取得出来ました。
また、Issue3536で紹介されていた「tscon.exe RDP-Tcp#0 /dest:console」でリモートデスクトップを切断する方法でもうまく動作しましたので
情報共有させて頂きます。
サーバの構成を変更せず利用できる「tscon.exe RDP-Tcp#0 /dest:console」で今後の運用を検討したいと思います。

有難うございました。


2015年2月5日木曜日 14時54分47秒 UTC+9 伊藤望:

伊藤望

unread,
Feb 6, 2015, 8:22:05 PM2/6/15
to selen...@googlegroups.com
増田さん

Selenium Advent Calendarの記事が活用されたようで、よかったです!
tscon.exeの方法は見逃していました、情報共有ありがとうございます。
Reply all
Reply to author
Forward
0 new messages