情シスは何度でも甦るさ。

VBA!VBA!

Oracle Functional Testing OpenScriptでWeb自動テスト1

今回はGoogle先生に聞いてもあまり日本語で情報を教えてくれない、Oracle製のテスト自動化ツールについて書いていきます。
機能的に色々イケてるのに、全然ネット上で情報が無いので、しょうがなく自分で調べたことを記述することにしました。

まずは、製品について簡単な紹介。


1.Oracle Functional Testingって?
Oracleが、エンピレックス社から買収したWebテスト製品郡のうちの一つ。
製品の枠組みとしては、Oracle Enterprise Managerの中に、Oracle Testing Suiteとして、三本のソフトウェアで構成されています。

  1. Oracle Functional Testing(以下OFT) :自動テストツール
  2. Oracle Load Testing(以下OLT) :負荷テストツール
  3. Oracle Test Manager(以下OTM) :テスト管理ツール

です。オープンソースな人のためにそれぞれの製品を例えると

製品名 OSSで言うと
Functional Testing Selenium
Load Testing JMeter
Test Manager TestLink

というところでしょうか。ただ、この製品は、それぞれが連携して動く部分がイケてます。
例えば、
OTMから、OFTを起動して、結果を記録したり、
OFTで作成したテストスクリプトが、そのままOLTでも流用できたり
など。
ただ、単体で使用しても、十分効果はあります。


2.OFTとSeleniumとの違いって?
Seleniumは、メジャーなOSSの自動テストツールですが、それとの比較を簡単に行なってみる。
Seleniumあんまり使ったことないので、誤りがあるとご指摘おねげーしやす)

項目 Functional Testing Selenium
対応OS Windows WindowsLinuxMacOS
対応ブラウザ IEFireFox IEFireFoxOperaChrome
言語でのテスト記述 Java JavaRubyPythonPerlPHPC#
CI連携 *1
スクリプト作成ツール Eclipseベースの専用アプリ Firefoxのアドオン
画面スナップショット
入力項目に可変な値を指定
テキストマッチングテスト
入力項目のcsvからの読み込み ×
入力項目のDBからの読み込み ×
DBへの自動テスト(SQL) ×
料金 もちろん頂きます 頂きません

他にもあったかと思いますが、傾向としては、Seleniumの方が、環境周りは優れています。
ただ、ツールの機能はOFTの方がすぐれているかなと。
特に、入力項目をファイル(csv)やDBから読んで登録していくデータバンクという機能は、画面からの大量のテストデータの登録などにかなりの力を発揮します。
事例としては、本番での大量のデータ登録などでも使われていると聞きました。


3.OFTのライセンス・料金
Oracle印だから、お金はかかります。
価格表を見ると色々書いてますが、OFTだけで言うと、
869,600円(Named User Plus)

実に、一人に対して約90万円!

機能がいいっつっても、テストツールにそんなにお金はかけられない?
うちも、ある億単位の大型案件でそっと滑りこませたという経緯でライセンスを買ったのですが、それ以外ならライセンスは買えてないと正直思います。

テストを専門とする会社(コンサル含む)などで使われているのだそうです。
なんで、ユーザー企業のうちがこんなもの持ってるのかは、今になれば謎。まぁ、昔は景気良かったしな。


4.バージョンアップ
さて、このTesting Suiteですが、実は、数年前に大幅バージョンアップをして、今の形になっています。
私がこのテストツールを使い倒していた時のver8.50は、まだバージョンアップ前でした。
今の9.3x系と比べて、何が変わったかと言うと、


4.1 内部的なソフトウェアがOracle製になった
OLTや、OTMは、内部的にMS AccessJBOSSアプリケーションサーバなどが使われていたのですが、
→OracleDB,WebLogic に変更になりました。
なお、その影響で、マシンの要求スペックが急激に上がりました。そりゃAccessからOracle DBって、上がりすぎだろ。
昔は、普通のデスクトップだったのに、サーバーが必要になったり、
Accessだと、データだけ他の人に渡して分析とかできたのですが、そんなことはできなくなりましたとさ。


4.2 Eclipseベースになった
昔は、Eclipseベースではなかったのですが、Eclipseベースになりました。
また、それにあわせてJAVAのコードが自動で生成されて、それを拡張できるようになりました。
スクリプト作成ツールの呼び名も、Functional Testing for Webapplications という名前から、
Functional Testing OpenScriptという呼び名に変わりました。


4.3 FireFox対応
昔はIEだけだったんですが、FireFoxに対応しました。
Seleniumに比べるとまだまだですけど、IEのみに比べたら数倍ましですよね。


4.4 スクリプトの構成変更
Seleniumと同じく、Web上の操作を記録してスクリプトを作成するのですが、バージョンアップ後は、Initialize/Run/Finishという形にスクリプトのセクション分けができるようになりました。
これにより、Initializeセクションで、ログイン処理、
Runセクションで、複数の操作を繰り返し(複数スクリプトをここで展開できる)
Finishセクションで、ログアウトする。
というような一連の長いオペレーションができる構成になりました。
また、Inirialize部分で、入力項目の変数の宣言とかを集約することにより、スクリプトの可読性を上げることができるようになりました。



というところで、紹介終わり。
次回は、実際OpenScriptを使用して実際のスクリプトを作っていきたいと思います。
目標としては、現状公式サイトに掲載されてない、

  1. スクリプト上で関数を使用したランダムな値を入れる方法
  2. データバンクを使ってCSVのデータをスクリプトで使う方法

あたりを書ければと。

なお、試用版のダウンロードは、Oracleのアカウントさえあれば、誰でもここからできます。
製品情報はこちら
インストールガイドは、こちら
ほんっとに基本部分のオンラインチュートリアルは、こちら

*1:OTMとの連携をCIと言えるかもしれないが、またお金がかかるので現実的では無いよね。ただ、ANTから呼べるっぽいが、それは調査中なり