【ハウツー】
前編で構築したテスト環境とテストケースを用いて、Webテストを実行してみましょう。手順は次の通りです。
まずSelenium RCのプロキシサーバを起動します。起動するには、「C:\selenium\selenium-server-1.0.1」フォルダに移動して次のJavaコマンドを実行します(JRE5.0以上必要)。
java -jar selenium-server.jar
このコマンドはよく使用するので、バッチファイルを作成しておいてもよいでしょう。
ローカル環境のWebアプリをテストする場合は、他のVisual StudioインスタンスでASP.NETアプリを実行しておきます。もしくは以下のコマンドを使ってASP.NET開発サーバーを起動しておきます。
WebDev.WebServer.EXE /port:<ポート> /path:<物理フォルダ>
本稿のサンプルはマイコミジャーナルのサイトにアクセスするため、この手順は必要ありません。
いよいよテストを実行してみましょう。Visual Studioの「デバッグ開始」ボタンをクリックします。NUnitが起動したらRunボタンをクリックします。そうするとSeleniumのウィンドウが表示され、その後ブラウザにて自動テストが実行されます。
テストが終了するとNUnitに結果が表示されます。
テストに成功したことが確認できました。
実際の開発では、レコーディングに頼らず手動でテストコードを書いたほうが早い場合もあります。そこで主要なSeleniumコマンドを使ったコードのサンプルを示しておきます。以下はサイトにログインするイメージのコードです。
//ログインページに移動
selenium.Open("/login.aspx");
//ユーザ名を入力
selenium.Type("ctl00_UserName", "aoki");
//パスワードを入力
selenium.Type("ctl00_Password", "aoki-pass");
//ログインボタンをクリック
selenium.Click("ctl00_LoginButton");
//ページの遷移が終わるまで待つ(30000ミリ秒超えればタイムアウト)
selenium.WaitForPageToLoad("30000");
//URLをチェック
Assert.IsTrue(selenium.GetLocation().Contains("default.aspx"));
//id「ctl00_aLogin」の文字列が「ログアウト」になっていることをチェック
Assert.AreEqual("ログアウト",selenium.GetText("identifier=ctl00_aLogin"));
// GetText(identifier=xxx) id属性もしくはname属性でオブジェクトを取得
// GetText(dom=xxx) Domでオブジェクトを取得
// GetText(xpath=xxx) XPathでオブジェクトを取得
// GetText(link=xxx) リンクを取得
//「ログアウト」というリンクのhref属性をチェック
Assert.IsTrue(selenium.GetAttribute("Link=ログアウト@href").Contains("/logout.aspx"));
//テスト結果のスクリーンショットを取る
selenium.CaptureScreenshot(@"C:\selenium\検証物1.png");
Seleniumコマンドの詳細を知りたい場合は「C:\selenium\selenium-dotnet-client-driver-1.0.1\doc\index.html」を開いて、ISeleniumインタフェースをチェックするとよいでしょう。
本稿ではWebテストの自動化について紹介しました。最後に、筆者がテストコードを書いた時の感想とポイントを紹介しておきます。
本稿を読んでWebテストに興味を持たれた方は、SeleniumとNUnitを試してみてはいかがでしょうか。
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
『逆転裁判』初日舞台挨拶に成宮寛貴が登場!「ヤバイと思った」 [16:08 2/11] キャリア |
|
【エンタがビタミン♪】「少しでもキレイに見せたくて」。バナナマン日村のTシャツの下に隠された秘密。 [16:06 2/11] キャリア |
|
【イタすぎるセレブ達・番外編】全世界騒然! ビヨンセとJay-Zが、長女ブルー・アイヴィーちゃんの写真を初公開! [16:06 2/11] キャリア |
|
やっぱり黒髪美人!?黒髪のメリット&デメリット! [16:06 2/11] キャリア |
|
スバルBRZ&トヨタ86のアライメント調整はどうする? [16:05 2/11] キャリア |