ちょうどWEBアプリを作っているので複雑な画面をSeleniumでテストケース作っておけばいいかなーと思って作りました。
FireFoxDriverを起動しています。
Jenkinsでテストとテストサーバーへのデプロイもしているので、SeleniumもJenkinsから実行できれば、なお良いねということでやってみた。
かなり端折りますが、結論からいうとLinux上のFireFoxで動かすことはできませんでした。
正確には、動いたのですがFireFoxが途中で止まってしまって、お手上げです・・・。
で、SeleniumRCっていうのが昔あったなーと思って、探してみたら最近はSeleniumServerっていうらしいですね。
という訳で、Windows7上でSeleniumServerを動かして、Jenkinsからこいつにアクセスすれば万事OKですな。
ということで、Windows7でSeleniumServerを動かして、Jenkinsから実行する方法です。
環境
最初に、簡単な環境を書いてみます。
図に文字がないのは、png出力したら文字化けしたからなんです。まぁ、なくてもわかりますよね・・・。
Windows7の準備
準備といってもFireFoxがインストールされていれば、SeleniumServerのみです。ちなみに、JDKは別途インストールしておいてくださいね。
SeleniumServerは、Seleniumのダウンロードページからダウンロードします。
ダウンロードページを開く
この時点での最新版は2.35.0をダウンロードします。
起動するか確認。
コマンドプロンプトか何かで以下のコマンドを実行します。
[powershell]
java -jar selenium-server-standalone-2.35.0.jar -interactive
[/powershell]
立ち上がればOK。
Windows7の準備はこれで、完了。
一応動作確認
とりあえず、テストで以下のようなプログラムを書いてみます。
[java]
@Test
public void test起動() throws Exception {
RemoteWebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), DesiredCapabilities.firefox());
driver.get("http://www.google.com");
sleep(3000);
driver.quit();
}
private static void sleep(int microtime) {
try {
Thread.sleep(microtime);
} catch (InterruptedException e) {
}
}
[/java]
実行するとFireFoxが立ち上がって、Googleのページが表示されると思います。
FireFoxDriverじゃなくて、RemoteWebDriverとなっているところに注意です。
実は、これで準備完了です。
後、外部から4444ポートに接続しますので、適当にWindowsのファイアウォールのルールを変更しておいてください。
まとめ
いい時代になったものですね。
ちなみに別途ChromeとかInternet Explorerでも動くんじゃないかなーと思っています。
時間があれば、試してみます。