watij

2010 年 4 月 18 日 件のコメント

webア プリケーションに selenium を採用してからかなりの時間が経つが、やはりしっくりこない点が多く、IE では使いにくい。他に良いテスティン グツールはないものかとをネットを探していたら、watij (ワットと発音?)なるものがあった。

IE で使うなら selenium よりも使い勝手が良さそう。試行錯誤の度合いも selenium を使うよりは少なかった気がする。

もちろん Alert や Confirm にも対応しており、子ウィンドウや webページダイアロ グにも対応している。ただし FireFox や Opera, Chrome などク ロスブラウザで使う必要があり、FireFox で Selenium IDE など強力な Webオペレーション記録ツールが使用可能なら Selenium を利用する方がコ ストパフォーマンスは良いかもしれない。

今回は IE のみで動く 昔ながらのビジネスア プリケーションをテストする必要があったので Watij を採用する事にした。ネット上にドキュメントがかなり少ないようなので、つまずいた点や参考になりそうな点をつらづらと綴っていく。

参考サイト

ダ ウンロード

こちらから

zip を解 凍し、lib 配下の jar ファイルをすべて eclipse プロジェクトなどにコピーしておくのを忘れないように。

※ダ ウンロードした zipファ イルの中 (src/java-test/watij) に テストクラスがあるので、テスト方法がわからない場合は参考にすればよい。かなり参考になると思う。

使用方法

私の環境では beanShell はうまく動かなかった事と、Java 方が馴染みがある事と、どうせ Java Web ア プリケーションをテストする為に使うので Java 技術者に広く展開できるよ うに Java UI でのテストを試みる。

http://watij.com/ には

IE ie = new IE();
ie.start("http://www.google.com");
ie.textField(name,"q").set("Watij");
ie.button("Google Search").click();
のように書いてあるのだが name が解決できるわけがない。。

どうしてコレでみんなうまくいくのかが実はよくわからず。

自分なりの解決方法をで解決を試みる。*1

Symbol name = new AttributeFinder("name");
結局 Symbol が見つからないだけなので、上記のようにあらかじめ指定して解決。

(BeanShell ではこのままでうまくいったりするのでしょうか?これがよくわからないです。あくまでも例文はそれくらいわかるやろ的なある程度抽象化したコードだったのでしょうか?)

その他のシンボルはこのような感じで指定できる。

Symbol value = new AttributeFinder("value");
Symbol text = new TextFinder();
Symbol xpath = new XPathFinder();
Symbol tag = new TagFinder();
Symbol url = new UrlFinder();
ス クリーンショット
ie.windowCapture("C:\xxx\yyy\0000.png");
ie.windowCapture("./0000.png");
Aタグの href属性に記述された特定の文字列を探し、そのリンク をクリックする方法。
ie.link(xpath,"//A[contains(@href,'javascript') and contains(@href,'shop=00001') and contains(@href,'dept=DA0001')]").click();
例えば href=”javascript(‘shop=00001′,’dept=DA0001′,’sex=female’);” のように関数処理したりしている場合でもこのよ うな指定で画面中の任意のリンクをクリックできる。

xpath文 の記述中でHTMLタグは 大文字で記述しないとelementの検索がうまくいかないので注意が必要。

※ 2010.04.09 追記

この問題は

import static watij.finders.SymbolFactory.*;
とする事で解決できる事を確認 ( Release 3.1.0にて確認済み。 )

カテゴリー: Development タグ: , ,

word press プラグインの追加

2010 年 4 月 18 日 件のコメント

■404 Notifier movable type からの移行に合わせて、可能か限りパーマリンクは一致させたハズなのですが、万が一存在しない URL にアクセスされた場合に登録していたメールアドレスに通知メールを送ってくれる。

WPtouch iPhone Theme iPodTouch iPhone からのアクセスがあった場合にはそれぞれに最適化した状態で表示してくれる。これは便利 !!

カテゴリー: 未分類 タグ: , ,

CMS の移行

2010 年 4 月 18 日 件のコメント

Movable Type 3.33 から Word Press 2.9.2 に移行してみた。 テーマとかプラグインが管理ツール上でインストールできるのがいいですね。

もしかしたら MT5 にも標準で備わっている機能なのかもしれませんし、MT3 の頃にも style catcher っていうプラグインがありましたが、しばらく Word Press を使ってみようと思います。(本当は MT5 を使ってみないと比較にはならないのですが。。。)

皆様にはご迷惑をおかけします。ご了承ください。 なるべくパーマリンクはそのまま引き継ぐ設定に変更したつもりなのですが、問題があったら教えていただけるとありがたいです。

参考にしたサイト

カテゴリー: 未分類 タグ:

Hello world!

2010 年 4 月 17 日 件のコメント

WordPress へようこそ。これは最初の投稿です。編集もしくは削除してブログを始めてください !

カテゴリー: 未分類 タグ:

2010 年 2 月 14 日 件のコメント

『Everyday Rails – RSpecによるRailsテスト入門』のベータ版を公開しました。

『西脇.rb & 東灘.rb ペアプログラミング In Action』を開催しました #nshgrb #ruby

西脇.rb & 東灘.rb 合同もくもく会 3rd を開催しました ! #nshgrb

ダミー

http://spring-aki.com/archives/2923#1

http://spring-aki.com/archives/2923#postnavi

http://spring-aki.com/archives/2923?q=1

http://spring-aki.com/archives/2923?q=2

カテゴリー: 未分類 タグ:

SVN ERROR

2006 年 8 月 9 日 件のコメント

Subversion(SVN)リポジトリから更新を実行する際 以下のようなエラーが発生した。

REPORT request failed on ‘/repository/!svn/vcc/default’ REPORT of ‘/repository/!svn/vcc/default’: 200 OK
このような場合、まずは原因の切り分けが必要。 [問題判別] ・別のディレクトリ(もしくは別のマシン)にリソースをチェックアウトして新しく作業コピーを作成し、そこでも同じ現象が起きるか検証する [検証結果1] 新しい作業コピーで問題の現象が発生しないのであれば、リポジトリが破損しているとは考えられない。ローカルの.svn情報が壊れているか、不整合が起こっている可能性がある。 [検証結果1-対処方法] a. 更新を実行した作業コピーより下位の階層で個々の作業コピーに対して更新をかけ、エラーの出所を明らかにする。 b. 更新エラーが発生する作業コピーが特定できたら、そのディレクトリ名をリネームし、再度更新を実行する。(エラーが発生するディレクトリのみチェックアウトしなおすのと同じ) c. 正常に更新できればOK [検証結果2] 新しい作業コピー(もしくは別のマシン)で問題の現象が発生するのであればリポジトリが破損している可能性がある。 a. svnadmin verify でリビジョンの状態をチェックし、エラーの発生リビジョンを特定する。(“svn: Can’t read file ‘/xxxxx/svn/svndb/db/revs/3000′: 入力/出力エラーです”といったメッセージが表示される) b-1. バックアップを取っているのであれば、svnadmin loadコマンドなどで壊れる前のリビジョンまで復元する。 b-2. バックアップを取っていない場合、下記の方法で無理矢理復活できるかもしれませんが、推奨できない方法。at your own lisk で対処する事。 $repository/db/revs にある破損したリビジョン以降のリビジョンファイルを削除する $repository/db/revprops にある1で削除したものと同じリビジョンファイルを削除する $repository/db/current を編集して、破損したリビジョンに変更


カテゴリー: Development タグ: , ,