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 参照。

2010年9月19日日曜日

BeautifulSoup - Python HTML/XMLパーサの導入

導入方法
1.ここからBeautifulSoup.pyをダウンロード
2.作業フォルダ or C:\cygwin\lib\python2.6に配置(前提:Cygwin環境)

使用例
Googleのページを取ってきて表示
>>> from BeautifulSoup import BeautifulSoup
>>> from urllib import urlopen
>>> soup=BeautifulSoup(urlopen('http://www.google.co.jp/'))
>>> soup.prettify()
<!doctype html>\n<html>\n <head>\n <meta http-equiv="content-type" content="text/html; charset=utf-8" />\n <title>\n Google\n </title>
・・・
タイトルタグを取得して表示
>>> soup.head.title
<title>Google</title>
<a>タグを取得して、一番目を表示
>>> links=soup('a')
>>> links[0]
<a onclick="gbar.qs(this)" href="http://www.google.co.jp/imghp?hl=ja&tab=wi" class="gb1">画像</a>
一番目の<a>タグのhref属性に記載されたリンク先urlと,<a>タグのテキストコンテンツを表示
>>> links[0].get('href')
u'http://www.google.co.jp/imghp?hl=ja&tab=wi'
>>> links[0].contents[0]
u'\u753b\u50cf'

詳しい使用方法はここ

2010年9月8日水曜日

CygwinにPython Imaging Library (PIL)をインストール

1.ここからPython Imaging Library 1.1.7 Source Kit をダウンロード

2.解凍し、解凍したフォルダに移動
 cd Imaging-1.1.7

3.以下を実行してインストール
 ① rebase -b 0x1000000000 /bin/tk84.dll
 ② python setup.py build_ext -i
 ③ python setup.py install
 ※上記①の意味は分からないが、これを実行しなければエラーになる

4.Cygwinを再起動し、以下を実行してエラーが出なければインストール成功
 ① python
 ② import PIL

使い方はここ

2010年8月29日日曜日

xyzzyのpythonモード設定

1:ダウンロード → ここ
2:解凍
3:etcフォルダ下のpyをxyzzy\etcフォルダにコピー
4:site-lispフォルダ下のpy-mode.lをxyzzy\site-lispフォルダにコピー
5:py-mode.lをバイトコンパイル(M-x byte-compile-file)
6:siteinit.lに以下を追加
   (load-library "py-mode")
   (push '("\\.py$" . py-mode) *auto-mode-alist*)
7:再起動(CtrlとShiftを押しながら起動)