Weblogこの広告は、90日以上更新していないブログに表示しています。2011-04-25Watirでブラウザテストを自動化するプログラミング仕事で大量のURL(十数万)にブラウザからアクセスして挙動を確かめたい、という要件がありました。(例えば、htmlに不適切なJavascriptコードが含まれてないか、など。)最初はmechanizeで適当にすまそうと思ったのですが、今回の案件はJavascriptを実行した結果を検証する必要があったので残念ながら却下。しようかと考えていたのですが、同僚の@nunaくんにWatirを教えてもらったので使ってみました。WatirとはWaitr(ウォーター)はRubyからIEを操作して自動テストを実現するライブラリです。インストールgemで一発インストール。watirIEでgoogleにアクセスする以下はIEを起動してgoogleへアクセスするコード。Watir::IE.newをするとブラウザが起動して、goto(url)を実行すると、該当のURLにアクセスします。Watir::IE.newie.goto("http://www.google.com/")テキストフィールドに文字列を追加nameがhogeのテキストフィールドにfooという文字列を追加するのはこんな感じ。"foo"IEを操作してhtmlを取得するので、サーバーから返却されたhtmlもjavascriptが実行された後の状態でオブジェクト化されています。javascriptが追加した文字列を取得する、ということも出来たりします。javascriptでh1タグをappendしていたら、それもオブジェクトとして取得できました。困ったことただ、試しに適当なスクリプトを作って10万件ほどのURLを食わせておいて次の日に見たら、1万件くらいで処理が止まっていました。Filesディレクトリ内のファイル容量が制限を超えていたため。ディレクトリを読み込み専用にしてしのぎました。ローカルPCのIEを自動操作するライブラリの特性からか、はたまた公式サイトの情報が古いのか、サンプル通りにコードを書いても動かないこともあるので注意です。