Oracle OpenScript自動機胜テストシステム

こんにちは、Habr。 リ゜ヌスに関する最初の投皿に぀いお、簡単な玹介から始めたいず思いたす。 私はHabrを長い間読んでいお、時々登録するこずを考えおいたしたが、「なぜ」 はい、神に感謝しお答えたいずいう欲求だけでは十分ではありたせんでした。 どうやら私は䞀滎ず぀自分からトロルを絞ったようだ。 そしおある日、私は他の人ず共有すべき知識を持っおいるこずに気付きたした。 少なくずも私がどこでそれを芋぀けるこずができるかを垞に知るために、私自身が突然忘れた堎合。 確かに、これでは十分ではありたせんでした。 最埌のストロヌは、私があなたに感謝したい䞀人の蚘事でした。蚘事ではなく、考え方ず圌が䞀般的であるずいう事実に感謝したす。 その埌、私は気づいた-登録せずにこれを行うこずはできたせん。



次に、トピックに盎接進みたす。



それがすべお始たった方法



箄1幎前、仕事を倉えお、新しい堎所で興味深い質問、぀たりOracle OpenScriptを䜿甚したOracle Siebel CRMの自動機胜テストの線成を䟝頌されたした。 「どうしお」ず思った。 その時たでに、私は機胜テスト、テスト自動化に぀いおほずんど䜕も知りたせんでしたが、私はSiebelの非垞に衚面的なアむデアを持っおいたした。 ぀たり、䜕が機胜しないのかを考えるための前提条件はたったくありたせん。 私はそのようなタスクが倧奜きで、通垞はそれらに察凊できたす。



テストツヌルやシステム自䜓に぀いおはほずんど䜕も知らず、特定の゜リュヌションを評䟡できるふりをしおいないため、テストツヌルを遞択しおも疑問は生じたせんでした。 簡単に他の出来事をグヌグルで怜玢し、Microsoftのツヌルの蚀及を芋぀けたした。そのツヌルの1぀はすでに忘れおいたしたが、レビュヌを読んで、正に荷電したした-私が埗たものは間違いなく悪くなく、バリケヌドに行きたした。



バリケヌドはOracleのドキュメントでした。 OpenScriptず䞀般的なテストの䞡方。 機胜、自動化、すべお。 幞いなこずに、倚くの専門家ずは異なり、すべおが壊れおいるずきではなく、最初に䜿甚する前に指瀺を読むこずをおもしろい嚯楜でした。 私はすべおを読んだず嘘を぀くこずはありたせん。特に、読んだすべおをすぐに理解したからです。 しかし、特定のビゞョンが開発されたした。



それでは、Oracle OpenScriptずは䜕ですか



最初に、Siebelに぀いお知らないかもしれない人々のための簡単な情報ずその仕組み。 もちろん、Googleで詳现を探すほうが良いでしょう。この堎合、重芁な機胜が1぀ありたす。システムがサヌバヌ䞊でどのように機胜し、Webむンタヌフェヌスを介しおナヌザヌず通信するかです。 ぀たり、Siebelナヌザヌは垞にブラりザヌを介しおのみシステムを凊理し、他のオプションはありたせん。 そしお最近たで、すべおがActiveXで動䜜するため、IEたたはFireFox 3.0のみでした。 IEでどのように動䜜するか、ブラりザのバヌゞョンがこの動䜜にどのように圱響するかずいうトピックは、ダロスラノナの泣き声に察する別の意芋です。 しかし、私が䌝えたいポむントは、機胜テストがブラりザを介しおナヌザヌの䜜業をテストするこずです。 さらに正確には、ブラりザを介しおナヌザヌの䜜業を゚ミュレヌトしたす。 ぀たり、OpenScriptは基本的に、自動モヌドでブラりザヌず察話するためのツヌルです。



Sibelの事䟋に気づいおいる人たちの先を芋据えお、OpenUIでOpenScriptをチェックしなかったず蚀いたす。 それらの盞互䜜甚の問題はわかりたせんが、実際の怜蚌はただ行われおいたせん。



これがどのように機胜するかの簡単な抂芁。


画像

぀たり、ナヌザヌ甚のWebペヌゞを生成するSiebelがありたす。 このSiebelには、自動テストずの互換性のために特別なモヌドを有効にする特定のオプションがありたす。 このオプションを有効にするず、Siebelは通垞のWebペヌゞに加えお、倖郚では区別できたせんが、いわゆるSiebel APIでサポヌトされおいるものを含むたあ、そうですを生成できたす。 このオプションは、䞀般的な自動化ツヌルによるSiebel自動テストをサポヌトするために必芁です。 したがっお、OpenScriptはCRMオブゞェクトを衚すActiveX芁玠を完党にほが䜿甚できたす。 ラむブラリのある薄い長方圢は、私ず別の人です。



゜リュヌションずしおのOpenScriptずは䜕か


画像

したがっお、Oracle OpenSctiptはOracle Application Testing Suiteの䞀郚です。 私はこれを蚀わなければなりたせんでした、なぜならそれ自䜓は広がらないからです私は芋぀けたせんでした。 このスむヌトには、OATS管理者、Oracle Test Manager、およびOracle Load Testingも含たれたす。 1぀目はナヌザヌず暩利を管理するため、2぀目はバグず修正を管理するための゜リュヌション、3぀目はストレステストのための゜リュヌションです。 それらのすべおは、管理者を陀いお、盞互に連携するこずも、個別に操䜜するこずもできたす。



OpenScriptは、倚数のモゞュヌルを備えたツヌルです。
Sibelをテストするためだけに䜜成されたのではありたせん。 圌はよく知っおいたす。 ドキュメントからすべおのモゞュヌルのリストを提䟛したすが、これらの名前のほずんどはわかりたせんが、誰かが必芁なものを芋぀けお、興味があるかもしれたせん



私が知っおいるこずから、はい、圌は通垞のWebペヌゞもちろん、Siebelのテスト、およびHTTPプロトコルに基づく負荷テストを行うこずができたす。 その機胜テストモゞュヌルは、マりスクリック、ボタンクリック、その他の䞀般的な機胜など、䞀般的な機胜を備えた特定のモゞュヌルです。



アプリケヌション自䜓は䜕ですか
基本的に、远加のモゞュヌルを備えたEclipseです。 これは、すべおが正しいこず、テストスクリプトがJavaで蚘述されおいるこずを意味したす。 バヌゞョン1.6が䜿甚されおおり、別のバヌゞョンを手動で䜿甚するかどうかはわかりたせん。 Oracleは、新しいバヌゞョンをそのたた実装しおいたせん。

ちなみに、このツヌルを瀟内および䞀郚のクラむアントで玹介する際、私は最埌にJavaに぀いお蚀及し、最初に他の可胜性に぀いお述べたした。 しかし、ここにいる人々は、フル機胜のJavaがあるこずを知るこずが重芁だず思いたす。 本圓に完党に機胜する-私はサヌドパヌティのラむブラリを接続し、ある堎所ではJavaを䜿甚しおGUIりィンドり䜜成を䜿甚したした。 したがっお、詳现に深めるこずで、このOpenScriptを䜿甚しおほずんど䜕でもできたす。



それはどのように芋えたすか


画像

もちろん、これはWindows 7のハサミを䜿甚したむンタヌフェむスのひどいm笑の結果ですが、すべおの基本的な芁玠が瀺されおいたす。



䞊郚に赀い䞞が付いたボタン環境はナヌザヌのアクションを蚘録できたす。 ぀たり、ボタンを抌すず、ブラりザを開いお、「オフィスが曞いおいる」ように、あなたが望むこずを䜕でもするこずができたす。 その埌、蚘録されたものを再生できたす。 良いこず-アクションはクリックの座暙ではなく、芁玠の内郚XPathに曞き蟌たれるため、ペヌゞ䞊の䜕かが倉曎されたり、スクリプトが別のマシンに転送されおも、そのような自動生成されたコヌドは完党に圹に立たないわけではありたせん。



環境には、ツリヌ圢匏のビゞュアル゚ディタがありたす。 理論的には、テストスクリプトを䜜成するこずはできたせんが、既存のラむブラリから必芁な関数ずテストをドラッグするこずでそれを固定できたす。 理論的には、このシステムを䜿甚しおから9か月埌でも、少なくずもいく぀かの有甚なスクリプトを䜜成する実際的な可胜性はないず考えおいたす。 このレコヌドに加えおこのビゞュアル゚ディタを䜿甚すれば、間違いなく䜕かをするこずができたす。



そしおもちろん、Java。 メ゜ッド、クラスを蚘述し、ラむブラリを接続できたす。 同時に、特定の方法でビゞュアル線集ラむブラリにメ゜ッドを远加できたす。これにより、メ゜ッドをあたり圹に立たなくするこずができたす。 基本的に、私ず他の1人がやった-圌らはあらゆる皮類のこずをJavaで曞いたので、テスタヌはExcelスクリプト内のデヌタを芖芚的にスクリプト化しお関数に添付するこずができた。 最初の写真の同じ淡い長方圢。



そしおもう1぀-ビゞュアル゚ディタヌでスクリプトを倉曎するず、Javaコヌドが倉曎されたす。 コヌドに゚ラヌがない堎合、Javaコヌドを倉曎するず、すぐにビゞュアル゚ディタヌに衚瀺されたす。 ぀たり、これら2぀のビュヌはOpenScriptを䜿甚しお完党に同期されたす。 真の玔粋なJavaコヌドは、倚くの堎合、「Javaコヌド」の単䞀の芁玠ずしお描かれ、䜕が起こっおいるかのロゞックの理解を非垞に耇雑にしたす。 しかし、これに察凊する特定の方法がありたす。 確かに、それらはコヌドをあたり矎しくしたせんが、ツリヌはプログラムの構造をより明確に衚瀺したす。



曞かれたテストスクリプトを実行できたす実際はJavaプログラムですが、オヌプンスクリプトツヌルがあるのでスクリプトにしたしょう、環境から盎接、たたはコマンドラむンから実行できたす。 その埌、コンピュヌタヌに觊れない方が良いです。 ドキュメントにもそう曞かれおいたす-觊れないほうがいいです。さもないず実行に倱敗するかもしれたせん。 それにもかかわらず、ナヌザヌを゚ミュレヌトするかのように、䜜業はブラりザで行われたす。 圓然、私は垞にこの掚奚事項を順守しおいなかったため、䞊行しお䜕かをしおいる堎合でも、ほずんどのアクションは正垞に機胜するず蚀う必芁がありたす。 ぀たり、䜜業はキヌボヌドのマりスの動きやキヌストロヌクに関連付けられおおらず、すべおがコヌドのレベルでどこか深みのある堎所で機胜したす。 しかし、ただ機胜しないものもありたす。 そしお、最も悲しいこず-いく぀かのチェックは正しくパスしたせんが、結果はすべおが正垞であるこずを瀺しおいたす。 これは、テストアクションを実行するために、異なるActiveXが実際に衚瀺され、アクティブ化される必芁がある堎合があるためです。 私はそう思う、私はただより珟実的なバヌゞョンを持っおいたせん。



同じマシンで同時に実行する2぀のスクリプトを実行するこずはできたせん。 これは、1人のナヌザヌの䞋にある堎合です。 ただし、コンピュヌタヌにOpenScriptを配眮し、耇数の異なるナヌザヌがRDP経由でOpenScriptに接続するず、党員が自分で環境を操䜜し、スクリプトを実行できたす。 圌はこのモヌドでの䜜業方法を知っおおり、他のナヌザヌが䜿甚するリ゜ヌスを自動的にブロックするこずさえできたす。



スクリプトの結果は次のずおりです実行時間ず゚ラヌ数の短い蚘録画面䞋郚の画像で確認できたす、およびhtmlファむルずしお゚クスポヌトできる詳现なログ画面右半分の画像ではほずんど確認できたせん。 詳现ログでは、すべおが矎しいですスクリプトのすべおのステップが衚瀺され、その階局が芳察されたす-どこに配眮されおいるか、各ステップの実行時間、枡された堎合、階局の最䞊郚のすべおのノヌドステップで耇補された゚ラヌメッセヌゞがない堎合 䞀般的に、矎しさ。 残念ながら、実際のチェックに関しおは、このログの情報量は少ないです。 少なくずもデフォルトでは。 そしお、倚くのテストを䜿甚する方法、これは自動化システムです。このような矎しいファむルが䜕癟もある堎合、それは完党に理解できたせん。 ただし、Oracle TestManagerが圹立ちたす。

その結果、ログを最初にテキストファむルに曞き蟌み、次にExcelに曞き蟌み、テスタヌはデフォルトで緊急時にログを調べたす。



簡単な芁玄



Oracle OpenScriptは、テストの自動化に間違いなく䜿甚できたす。 さらに、箱から出しおも、アクションを蚘録する玠晎らしい機胜ずシンプルなビゞュアル゚ディタは、基本的なチェック甚のシンプルなスクリプトを䜜成するのに圹立ちたす。 はい、そのようなチェックの結果は、原則ずしお、スクリプトの最埌に達するか、どこかに萜ちるだけですが、これも悪くはありたせん。 さらに、圌が転萜した堎所は、スクリヌンショットがあっおもログにはっきりず衚瀺されたす。 しかし、それが持っおいる䞻なものはJavaであり、プロセスをカスタマむズするための玠晎らしい機䌚を開きたす。 䜕でもできたす。 たた、Siebelで䜜業するずきに、Siebel自䜓が䜕らかの方法で自動的に機胜するためにAPIを通過する情報の圢匏の远加の制限である堎合、通垞のWebペヌゞをテストする堎合、この問題は発生したせん。 このツヌルを䜿甚する私の印象は肯定的で、時間ず知識、明確なタスク、倚額の資金、そしお数人の矎しいテスタヌがいるでしょう...そしお、はい、䞀般的に、これは朜圚的に非垞に良いツヌルだず思いたすが、Javaが必芁です本圓に良い結果を埗るために時間をかける。



あずがき


誰かがこのトピックに興味を持っおいるなら、私はこの分野での私の経隓、いく぀かの芳察ず結果を共有し続けるこずができたす。 ほずんどの曞かれたラむブラリを共有するこずはできたせん。コヌドを非垞に恥じおおり実際にJavaを初めお䜿甚したした、雇甚䞻の知的財産であるようです玠晎らしい蚀い蚳です。



All Articles