超簡単なサンプル(seleniumでテストを書くためにちょっと作成)
関Java2012年10月に参加してきました。
最初のセッションでブラウザテストの自動化に興味があったのと、seleniumを実際使ったことがなかったので挑戦することに、まずテスト対象の画面を作成。
NetBean7.2, JDK7を使用しています。コードはtomoTaka01/HelloSample: JaveEE6 project wit... - GitHubにあります。
とりあえず簡単に最初の画面でnameテキストボックスに名前を入力してgreetボタンをクリック
画面遷移し、入力した名前を使って挨拶の文字を画面のh1タグに表示。
- 最初の画面
- 遷移後の画面
この画面を作成するのにJavaEEを使用したかったので、寺田さんのここから始める Java EE 6 | 寺田 佳央 - Yoshio Teradaを参考にしました。
本当にとっても簡単でした。(作成する画面自体が簡単すぎるし・・・)
netBeans7.2を使って、以下の順にプロジェクトを作成
1.メニューより新規プロジェクト作成を選択し、[JavaWeb][Webアプリケーション]を選択し[次へ]
2.プロジェクト名を入力し[次へ]
3.サーバーにGlassFishを選択し[次へ]
4.JSFを使うので[JavaServerFaces]をチェックし[終了]
5.これでプロジェクトが作成、最初に[index.xhtml]ファイルが自動で作成されます。
サンプル画面では、DB接続とかしないので必要なファイルは以下の3ファイルのみ
1.Managed Bean
package mbean; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean(name="HelloCtl") @SessionScoped public class HelloController { public HelloController() { } private String name; // ★1ここに最初の画面で入力したnameを保持 public String getName() { return name; } public void setName(String name) { this.name = name; } public String doGreet(){ return "GreetingPage.xhtml"; // ★2[Greet]ボタンクリック時の遷移先を指定 } public String getGreeting(){ return "Hello " + name; // ★3遷移先のh1タグに表示する文言 } }
2.JSFページ(サンプルの最初の画面:Hello)
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <title>Hello</title> </h:head> <h:body> <h:form id="form1"> <h:outputLabel value="name:"></h:outputLabel> <h:inputText id="name" value="#{HelloCtl.name}"></h:inputText> // ★1nameテキストボックス <h:commandButton id="greet" value="greet" action="#{HelloCtl.doGreet()}"></h:commandButton> //★2遷移先指定 </h:form> </h:body> </html>
3.JSFページ(遷移後の画面:Greeting)
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <title>Greeting</title> </h:head> <h:body> <h1><h:outputLabel value="#{HelloCtl.greeting}"></h:outputLabel></h1> // ★3挨拶表示 </h:body> </html>
実際WebProjectを作成するより、このブログ書く方が時間掛かっているし・・・
この画面をseleniumを使ってテストを書くのに挑戦!