Tag Archives: Selenium

Selenium と使うと便利なユーティリティ

またSeleniumの話ですが、前のエントリでも書いたとおり、TDDで使う分にはソース側を変えれば良いので特に問題にはならないのですが、既存のWebアプリに対してリグレッションテストを作成しようとすると今のバージョンでは、結構致命的になりかねない制限があります。 リファレンスに次のように書いてあります。 In some cases, Selenium will be unable to intercept a call to window.open (if the call occurs during or before the “onLoad” event, for example). 今私がテストを作成しているアプリケーションも結構古いもので、ページの切り替え時にJavascriptのAlertでポップアップウィンドウを出しているようなのですが、これのOKボタンを押すことが今のSeleniumだとどう転んでも出来ないのです。 でも、そこで手動操作を交えないといけないとなるとかなり魅力半減になってしまうのも事実で、少しの変更でバグが沢山出てしまうようなつくりの悪くなってしまったソースをリグレッションテストを通すために修正するというのも本末転倒のような話になってしまいかねません。 解決方法としては、Selenium RCを使用して.netプログラムにテストを変換して(テストの部分の変換はIDEがほぼ自動的にやってくれます)、Seleniumだけではどうしても手が出ない部分は、C#の力技で無理やり操作してしまうというのが一つの方法ですが、これだと開発者でない人にも何とかテストが作成できるというストーリーから離れていってしまうなあと考えあぐね、何か他の操作自動化するツールと組み合わせてできないかなと思って見つけたのがこれです。 UWSC これもブラウザ操作等ができるのですが、その辺はSeleniumの方がずっと出来がよいと思いますが、SeleniumがJavascriptベースのために対応できない部分を補完するのには、結構最適な感じ(通常のWindowsプログラムなのでJavascriptの部分でかち合うことはない)です。私の場合、何とかこのユーティリティを組み合わせることで、Seleniumで閉じれなかったポップアップを閉じれるようになり、ほぼテストを自動化することに成功しました。このツールはオープンソースではありませんが、無償で提供してくださっているので大変ありがたいです。WindowsのAPIやCOM呼び出しもできるので頑張ればかなり強力なツールだと思います。ちょっと困った問題が、UIが全部日本語なんですよね。こちらの人にこれを使えとはちょっと言えないので、何か同等のツールを探さないといけないかも知れません。WinBatchなんかも使えるのかも知れませんが有料ですし、何かいいツールをご存知の方はぜひ教えてください。 とりあえず、Seleniumでのテスト自動化をしようとして、JavascriptのアラートウィンドウをSeleniumで閉じれなくて使用を断念しそうな方は、大いに試す価値があると思います。

Posted in インターネット, コンピュータ, 技術 | Tagged , , , , | Leave a comment

XPather 1.3

先日書いたSeleniumにちょっとはまっていくうちに、やっぱりXPathを正確に生成してくれるツールは必須アイテムで、このXPather 1.3が非常に良いというので使用中。確かによく出来ていて使いやすいです。Firefoxエクステンションです。 XPather 1.3 こうしてネット系の作業をやればやるほどなぜFirefoxがシェアを伸ばしてきたのかがよく理解できますね。どんどんエクステンションをインストールしていくとIEには戻れなくなって行きますね。IE7.0でこれに似た機能はあるんでしょうか? 私のデスクトップでは、一応IE7.0にアップグレードしたんですけど、何かタブをどんどん開いていくと、10個も開かないうちに大体どこか適当なところでクラッシュして不安定でちょっと使えないんですよね。Firefoxも1.5より2.0の方が不安定になった感じはありますけど、IE7ほどではないし、セッション回復機能もあるのでクラッシュしても再起動で、一応クラッシュした時の状態には戻してくれるので、IE7よりはずっとマシです。そんなわけで、私のノートブックX32の方は、IE6のままにしてあります。Windows UpdateでしつこくIE7.0にアップグレードするように催促されるのが面倒でしょうがないのですが、これって何とかならんのですかね。Windows UpdateのサービスがCPU使用率100%になってしまう現象もWindows2000マシンで遭遇していますし、どうもX32の方もその現象が出つつあるのですが、面倒くさくてまだ調べてません。そろそろ、LinuxかMac OS XとかUnix系のOSに切り替えようかと真剣に考えてしまうこの頃です。

Posted in インターネット, コンピュータ | Tagged , , , | Leave a comment

Selenium は使えそう

食べ物の話題ばかりだとちょっと知性を疑われかねないので、一応本職関連の話をたまには書きます。 先週、遅ればせながらSeleniumというWebサイトのテスト自動化ツールがあるのを知って、今仕事で移行作業中のサイトの動的コンテンツのRegression Test Suiteを作成してみました。 Selenium IDEというもののおかげで非常にテストケースを作成しやすくなっていることがわかり、オープンソースやっぱすごいなと感心した後、その作者は日本の方であることを知り、さらに感心。インターネットの進歩のおかげで国際的なコラボレーションの垣根は秒進分歩で低くなって行っていることを改めて実感しました。 で、大方、Firefoxで通るようになったテストケースをIEで実行してみると通らないのが一杯出てきて、調べてみると、VerifyTextPresentは特に、表組みを使ってレイアウトされている場合は、IEだと個別にしか認識できないようで、<td>タグに対応して1つのテストケースを作成する必要があるみたい。Firefoxだと行単位で1つのテキストとしてみなしてくれるのだが、これはどちらがいいとは言えないので、仕方ないところか。仕方ないので、表の一つ一つの要素単位で検証するようにテストケースのコマンドを分割して両ブラウザでOKとなった。 しかし、なぜか下記のようなxpath表記はIEだとfalseになってしまう場合があり、今のところ理由は不明。HTMLのできが悪いのかも知れませんが。 <tr> <td>verifyElementPresent</td> <td>//h1/IMG[@src=’images/image3.gif’]</td> <td></td> </tr> それと、これは今のところ制限らしいが、target=_blankでオープンされたウィンドウはSelectWindowできない。テストドリブン開発では、テストを先に書いてから開発にかかるので、こういう制限は問題にならないのはわかるが、既に開発されたサイトに対して適用するテストを書こうとするとこの辺は結構引っかかってしまう感じがする。 それにしても、まだまだバージョン0.8台ですから将来が期待できそうなツールです。今のままでも、ちょっとしたテストならこれで十分いけそうな感じがします。 とりあえず3日程度はまって使ってみた感想でした。

Posted in インターネット, コンピュータ, 技術 | Tagged , , , , | Leave a comment