2010年10月23日土曜日

テストツールSahiでスクリーンショット取得

Webアプリケーションの自動テストツールSahiでスクリーンショットを取得する関数.(スクリーン全体を取得する)
function takeSnapshot(filepath) {
   try {
      var robot = new java.awt.Robot();
      var toolkit = new java.awt.Toolkit.getDefaultToolkit();
      var screenSize = toolkit.getScreenSize();
      var screenRect = new java.awt.Rectangle(0, 0, screenSize.width, screenSize.height);
      var image = robot.createScreenCapture(screenRect);
      var file = new java.io.File(filepath);
      javax.imageio.ImageIO.write(image, "png", file);
   } catch (e) {
      print(e);
   }
}

保存ファイルを指定してスクリーンショットを取得する.
var filepath = "C:/home/hy/sahi/userdata/scripts/snapshot1.png";
takeSnapshot(filepath);

テストツールSahiでテスト自動化

Webアプリケーションの自動テストツールSahi.インドの会社Tyto Softwareが開発したオープンソースツール(Apache License 2.0).SahiはOS,ブラウザから独立して動作するため,様々な環境でテスト可能.


インストール

ここからダウンロードし,適当な場所に解凍する.(Sahi V3 (2010-08-20))


起動

解凍したフォルダのbinフォルダに移動し, sahi.batを実行.



ブラウザ設定

Sahiはプロキシサーバとして動作するため,ブラウザのプロキシ設定を変更する.
(FireFoxの場合)
ツール → オプション → 詳細 → ネットワーク → 接続設定
「手動でプロキシを設定する」を選択
HTTPプロキシに「localhost」,ポートに「9999」を設定
(IE,Chromeの場合)
インターネットのプロパティ → 接続 → LANの設定
「LANにプロキシサーバを設定する」を選択
アドレスに「localhost」,ポートに「9999」を設定


ユーザ操作の記録

①ブラウザ上でAlt(またはCtrl+Alt)を押しながらダブルクリックし,Sahiのコントローラウィンドウを立ち上げ, Script Nameにスクリプトファイル名を入力,Recordボタンを押下し,ブラウザ上のユーザ操作の記録を開始.
②ブラウザ上で入力,ボタン押下等の操作を行うと記録される.
③html要素の値の比較をスクリプトに追加したい場合は,まずCtrl押しながらhtml要素の上にマウスポインタをかざし,Append to Scriptボタンを押下.






④Stopボタンを押下して記録を終了. スクリプトはjavascriptに似たSahi独自のスクリプトで記述される.
スクリプト例:
_setValue(_textbox("q"), "医龍");
_click(_submit("Google 検索"));
_click(_link("医龍-Team Medical Dragon- - Wikipedia"));
_assertExists(_heading1("医龍-Team Medical Dragon-"));
_assert(_isVisible(_heading1("医龍-Team Medical Dragon-")));
_assertEqual("医龍-Team Medical Dragon-", _getText(_heading1("医龍-Team Medical Dragon-")));
_assertContainsText("医龍-Team Medical Dragon-", _heading1("医龍-Team Medical Dragon-"));


テスト実行

スクリプトを実行する場合は,SahiコントローラのPlaybackタブから,スクリプトファイルとスタートURLを入力し,Setボタン,Playボタンを押下する.すると,テストが自動で実行される.






実行結果は,View Logsから見れる.





Sahiでできないこと

Sahiはフレーム,インラインフレームのページに対応してない.

2010年10月13日水曜日

テストツールwatirのインストール

Webアプリケーションの自動テストツールwatirをwindows7にインストールする。
watirのHPはここ
最新版はwatir 1.6.6。

1.rubyのインストール。
  ここからダウンロードしてインストールする。


2.watirのHPによると、次はwatirをインストールをするためにコマンドプロンプトから以下のコマンドを実行する。
gem update --system
gem install watir
が、以下のエラーが出る。
ERROR: While executing gem ... (Gem::RemoteSourceException)
HTTP Response 302
そこで、RubyGemsを最新のものに更新する。
ここからダウンロードし、ファイルを解凍、解凍したフォルダからコマンドプロンプトで ruby setup.rb を実行する。


3.今度こそ以下のコマンドを実行し、watirをインストールする。
gem update --system
gem install watir


4.インストールを確認する。ここからテストケースのサンプル(Google検索のテストケース)をダウンロードして、コマンドプロンプトから ruby google_search.rb を実行してみる。IEの起動、検索フォームに文字入力、検索ボタンクリック、検索結果ページの表示、が自動的に行われる。


5.firefox、chrome上で自動化できるようにする。
firefoxの場合は、firefox用プラグインを導入する。このページの "Windows plugin for Firefox x.x" から導入する。テストケースには、require とブラウザオブジェクトの生成を以下のように記述する。
require "firewatir"

browser = FireWatir::Firefox.new

chromeの場合は、watir-webdriverを導入する。以下のコマンドでインストール。
gem install watir-webdriver
テストケースには、require とブラウザオブジェクトの生成を以下のように記述する。
require "watir-webdriver"

browser = Watir::Browser.new(:chrome)

使い方は、 Watir API Reference 参照。