ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    ブックマーク数の多い記事

    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    with Ajax Amazon

    Seleniumでブラウザを自動的に操作する方法

    このエントリーを含むはてなブックマーク はてなブックマーク - Seleniumでブラウザを自動的に操作する方法 あとで読む
    ブラウザを自動的に操作して、Webサービスの利用をコンピューターにやらせたい。
    Selenium(セレニウム)というテストツールを利用すれば、ブラウザの操作を自動化できる。
    試しにSeleniumを使ってみたら、とても便利なツールだった。

    Selenium公式サイト
    http://seleniumhq.org/

    継続的インテグレーション入門 開発プロセスを自動化する47の作法継続的インテグレーション入門 開発プロセスを自動化する47の作法
    (2009/08/06)
    ポール・M・デュバルスティーブ・M・マティアス

    商品詳細を見る

    ●Seleniumとは?

    Seleniumとは - はてなキーワード

    Webアプリケーション用テストツール。
    ブラウザの操作をシミュレート(自動化)して、Webアプリケーションの画面周りの再帰試験(リグレッションテスト)を実施することができる。



    セレン - Wikipedia

    セレン(羅: Selenium)セレニウムと呼ばれることもある。
    原子番号 34 の元素。
    元素記号はSe。



    なんでテストツールに元素の名前が付けられたんだろう?

    ●Seleniumの使い方

    ブラウザを選ばずWebテストを自動化するSelenium - @IT
    この解説記事にある通りに使ってみたらうまくいった。

    FirefoxにSelenium IDEをインストールして、Yahooのログイン操作を記録してみた。

    Selenium IDE

    記録した内容は、HTMLファイルの形で保存できる。
    操作の内容は「テストケース」と呼ばれており、Seleinumを使えば自動的に再現できる。
    テストケースは、以下のようなHTMLデータになっていた。

    Selenium IDE

    Yahooのログイン認証はチャレンジレスポンス方式なので、PHP等で作ったWebアプリでログイン処理を実装するとなると面倒くさそうだった。

    「餅は餅屋にまかせる」ということで、HTTPのリクエストはブラウザにやらせたら、一番手っ取り早い。
    Seleniumは、Webサーバとブラウザの間にあるHTTPプロキシとして働くので、ブラウザの代役をこなしてくれる。

    VBAを使えば、IEオブジェクトを使って、IE経由のHTTPリクエストが行えた。
    IEオブジェクトの挙動が、バージョンによって多少異なるみたいで扱いがデリケートな面があるようだ。
    VBA+IEの代わりにSeleniumが使えれば、プラットフォームを問わずブラウザ操作の自動化ができて便利になると思った。

    ●Selenium AES
    Seleniumについて検索していたら、便利な派生ツールが提供されていた。

    Selenium Auto Exec Server(AES)

    Selenium AESを使えば、SeleniumのHTML形式のテストを毎日決まった時間に実行し、その結果をメールで送信するといったことが簡単に行えます。



    Selenium AES入門:CodeZine

    Seleniumは、Webアプリケーションのテストを自動化するためのツールです。
    テストは実際にWebブラウザを使って実行されます。
    Selenium AESは、Selenium RCという、Seleniumをリモート実行するためのプロダクトを拡張し、SeleniumのHTML形式のテストケースを定期的に実行するための、さまざまな機能を提供しています。
    毎日決められた時刻にテストを自動実行できます。
    テスト結果をメールとして送信(SMTP)することができます。



    繰り返し行う操作は、Selenium AESを使うと便利そうだ。

    ●自動化の方針
    Seleniumの操作内容(=テストケース)は、HTMLファイルとして用意すればOKだ。
    複数のテストケースをまとめて実行するには、テストスイーツというHTMLファイルを用意すればOKとのこと。
    問題は、このHTMLファイルをどうやって用意するかだな。

    ・PHPでHTMLファイルを生成する。
    ・Linuxサーバのcron機能で、定期的にHTMLファイルを出力する。
    ・Selenium AESでHTMLファイルのテストケースを定期的に実行する。

    テストケースのデータは、HTMLファイルだけではなく、PerlやPython、Java等のプログラム言語を使っても作成できるとのこと。
    テストケースのデータは、いろんな方法で作成できるようなので、PHP以外でも試してみよう。

    Seleniumを使えば、いろいろなWebサービスの操作が自動化できそうだ。
    テストツールの応用をいろいろ試してみよう。

    世の中には便利なツールを作って、無料で提供してくれる人がたくさんいるんだなー。
    いや~、本当助かるな~。
    作者の皆さん、どうもありがとうございます!
    関連記事

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバックURL:
    http://hamamuratakuo.blog61.fc2.com/tb.php/428-816ad2d1

    FC2Ad