超簡単なサンプル(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を使ってテストを書くのに挑戦!