テストケースを作成する流れ

続けて、テストケースを作成していきます。ここではマイコミジャーナルのエンタープライズページで次の2つのテストを行います。

  • タイトルが「エンタープライズ | マイコミジャーナル」であるはず
  • ページ上に「アクセスランキング(エンタープライズ)」という文字があるはず

テストケースを作成する手順は次の通りです。

  1. Selenium IDEでレコーディング
  2. テストケースをC#で出力
  3. NUnitのテストコードをカスタマイズ

(1)Selenium IDEでレコーディング

まず、Webブラウザを操作してレコーディングを行います。FirefoxのツールメニューからSelenium IDEを起動します。

Selenium IDEのウィンドウ

レコーディングはすでに始まっているので、テストするページに移動します。そしてタイトルのチェックを行うため、ブラウザで右クリックして「AssertTitle エンタープライズ ||マイコミジャーナル」をクリックします。

右クリックメニューからタイトルのチェックを選択

次に、「アクセスランキング(エンタープライズ)」の文字をマウスで選択してから右クリックします。そして、メニューの「assertTextPresent アクセスランキング(エンタープライズ)」をクリックします。

右クリックメニューから文言のチェックを選択

コマンドが登録されたことを確認して、赤色の丸ボタンを押してレコーディングを停止します。矢印ボタンを押すとレコーディングしたテストが実行されます。

Selenium IDEでテストを実行(成功)

成功すればコマンドが緑色で表示されます。

(2)テストケースをC#で出力

次にレコーディングした内容をC#のコードで出力します。オプションメニューから[フォーマット]-[C#]を選択します。

テスト内容がC#で出力

(3)NUnitのテストコードをカスタマイズ

生成されたコードをコピーして適当なクラスに貼り付けます。そして、クラス名等をわかりやすいように変更します。

生成されたテストコード(コメントなどを追加)

using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using NUnit.Framework;
using Selenium;

namespace SeleniumTests
{
  [TestFixture]
  public class エンタープライズページの表示
  {
    //Seleniumコマンドを実行するための変数
    private ISelenium selenium;

//verify(エラー時も継続)を使った時にエラー内容を保存する変数
private StringBuilder verificationErrors;

[SetUp]
public void SetupTest()
{
  //Seleniumの設定
  selenium = new DefaultSelenium("localhost",
     4444, "*iexplore", "http://journal.mycom.co.jp/");

  //ブラウザを起動
  selenium.Start();
  verificationErrors = new StringBuilder();
}

[TearDown]
public void TeardownTest()
{
  //ブラウザを停止
  try
  {
    selenium.Stop();
  }
  catch (Exception)
  {
    // Ignore errors if unable to close the browser
  }
  Assert.AreEqual("", verificationErrors.ToString());
}

[Test]
public void タイトルと文言のテスト()
{
  //テストするページを開く
  selenium.Open("/enterprise/index.html");

  //タイトルのテスト
  Assert.AreEqual("エンタープライズ | マイコミジャーナル", selenium.GetTitle());

  //文言が存在するかをテスト
  Assert.IsTrue(selenium.IsTextPresent("アクセスランキング(エンタープライズ)"));
}

} }

以上でテストコードは完成です。コードの内容を簡単に見ておきましょう。

SetupTestメソッドではテストの準備を行っています。DefaultSeleniumクラスのコンストラクタを使って環境を設定します。コンストラクタの引数は「サーバ, ポート, ブラウザの種類, ベースURL」を指定します。ここではブラウザにIEを使用するため「*iexplore」を設定し、ベースURLには「http://journal.mycom.co.jp/」を設定しています。

[Test]属性がついているメソッドはWebテストの本体です。NUnitのAssertを使ってタイトルと文字列有無をチェックしています。

前編はここまでにするとして、後編はテストを実際に実行してみます。