テストケースを作成する流れ
続けて、テストケースを作成していきます。ここではマイコミジャーナルのエンタープライズページで次の2つのテストを行います。
- タイトルが「エンタープライズ | マイコミジャーナル」であるはず
- ページ上に「アクセスランキング(エンタープライズ)」という文字があるはず
テストケースを作成する手順は次の通りです。
- Selenium IDEでレコーディング
- テストケースをC#で出力
- NUnitのテストコードをカスタマイズ
(1)Selenium IDEでレコーディング
まず、Webブラウザを操作してレコーディングを行います。FirefoxのツールメニューからSelenium IDEを起動します。
レコーディングはすでに始まっているので、テストするページに移動します。そしてタイトルのチェックを行うため、ブラウザで右クリックして「AssertTitle エンタープライズ ||マイコミジャーナル」をクリックします。
次に、「アクセスランキング(エンタープライズ)」の文字をマウスで選択してから右クリックします。そして、メニューの「assertTextPresent アクセスランキング(エンタープライズ)」をクリックします。
コマンドが登録されたことを確認して、赤色の丸ボタンを押してレコーディングを停止します。矢印ボタンを押すとレコーディングしたテストが実行されます。
成功すればコマンドが緑色で表示されます。
(2)テストケースを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を使ってタイトルと文字列有無をチェックしています。
前編はここまでにするとして、後編はテストを実際に実行してみます。