【ハウツー】

SeleniumとNUnitでWebサイトのテストを自動化する【前編】

2 タイトルと文言を確認するテストケースを作成する

    青木淳夫  [2010/02/12]

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

    続けて、テストケースを作成していきます。ここではマイコミジャーナルのエンタープライズページで次の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を使ってタイトルと文字列有無をチェックしています。

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

    関連したタグ

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン