クライアントのみのJavaアプリケーションのUIテストに興味があります。そうするための最も人気のあるフレームワークは何ですか?推奨されるフレームワークは何ですか?また、なぜSeleniumはこれを行わない(または行わない)のですか?Webアプリをテストできるものなら何でも、Windowsアプリをテストできるはずだと私には思えます。
11 に答える
FESTフレームワークをお試しください。私が間違っていなければ、これは以前はアボットとして知られていたものです。私はこれを自動テストに使用していますが、非常にシンプルで便利なようです。単純なものは簡単になり、複雑なものはロケット科学ではありません。UISpecj4jを検討しましたが、必須であるにもかかわらずドラッグアンドドロップをテストする技術的な可能性がないため、私には適していませんでした。さらに、実際に何が起こっているのかがわからない場合にテストを開発することは非常に困難です(UISpec4Jは偽の目に見えないルックアンドフィールを使用します)
唯一のことは、FESTで問題を起こすことです(これも設計によるものです)。マウスをつかんで、テストの実行中は何もできません。
TestCompleteを使用します。
AbbotJavaGUIテストフレームワークを試してください。
Seleniumがこれを実行できない理由は、Webブラウザーで実行されているJavascriptを使用してテストを実行するためです。ボタンのクリック、データの入力などをJavascriptでシミュレートします。Javascriptが無効になっている場合、それは機能しません。また、Swing / AWTアプリにはJavascriptがないため、Seleniumも動作しません。
答えは次のとおりです。「Mercurywinrunner」は、90年代後半に非常に人気があり、おそらく今でもWinアプリに広く使用されています。
もはやそのように販売されていませんが、私が間違っていなければ、HPQuickTestProfessionalとして利用できるようになりました。HPQTPのウィキペディアのページを参照してください。
HP Unified Functional Testing(UFT)2になりました
Visual Studio 2010を使用している場合は、新しく導入されたVisual Studio UI自動化テスト(コード化UIとも呼ばれます)を使用することもできます。これは、UIマップでSeleniumを使用するのと少し似ています。
SeleniumはJavaScriptベースのフレームワークであるため、JavaScriptを実行できるものでのみ実行できます。ブラウザはこれをネイティブに行います。
私に関する限り、SeleniumがブラウザにフックするほどネイティブにOSにフックするフレームワークを作成するのは非常に難しいため、デスクトップ上のSeleniumに匹敵するテストフレームワークは実際にはありません。人気があり、必ずしも最高ではありませんが、QTP、SilkTest、TestCompleteです。
uispec4jはオープンソースの代替手段です。ただし、まだ試していません。(現在、試してみるもののリストも集めているので、質問してくれてありがとう!)
オープンソースツールをお探しの場合は、Marathonをご覧ください。テストを記録および再生し、レポートを生成し、カスタムコンポーネントをテストするための独自のコードを統合できます。私はそれを数年間使用していて、何百ものテストを行っています。
より多くの機能を備えた商用バージョンもありますが、私はそれを試していません。オープンソースバージョンは私にとって素晴らしい働きをします。
Sikuliをお試しください
Sikuliは、MIT UI Designグループで生まれたテクノロジーであり、コンピュータービジョンを使用してコンピューター操作を自動化できます。コンピュータービジョンは、グラフィカルユーザーインターフェイス(GUI)のスクリーンショットからパターンを認識し、Jythonスクリプト言語を使用してパターンを実行します。言語にはグラフィック要素が含まれており、ソフトウェアに付属のIDEで編集するのが最適です。Sikuliは自動ソフトウェアテストに使用できます。SeleniumはWebページの制御に使用され、テキストを認識してクリックまたは入力できるほとんどすべてのインターフェイスを制御できます。PC(Windows、Mac OS X、Linux)アプリケーション、さらにはシミュレーターまたはVNCを介して実行されているiPhoneまたはAndroidアプリケーション。
SikuliJavaAPIを使用することもできます
Sikuli API for Javaは、Javaプログラマーに画像ベースのGUI自動化機能を提供します。これは、Sikuli Labによって作成され、積極的に保守されます。この新しいJavaライブラリには再設計されたAPIがあり、色の照合、イベントの処理、長方形のボタンなどの幾何学模様の検索など、元のSikuliスクリプトでは使用できなかったいくつかの新しい関数が含まれています。さらに、Mavenに基づいたビルドプロセスが大幅に簡素化されています。