Java Swing GUI の自動テスト [終了]
-
01-07-2019 - |
質問
Java Swing で書かれた GUI の自動テストを構築するにはどのようなオプションがありますか?
を使用して書かれたいくつかの GUI をテストしたいと考えています。 NetBeans Swing GUI ビルダー, したがって、テスト対象のコードを特別に改ざんする必要がなく動作するものが理想的です。
解決
最近、開発者が 2012年に開発は継続しないと発表.
アサートJ これは私にとって非常にうまく機能している FEST のフォークです。これは (執筆時点で) 積極的にメンテナンスされており、Java 8 をサポートし、Guava や Joda Time などのいくつかの人気のあるライブラリのアサーションがあり、非常によく文書化されています。こちらも無料でオープンです。
他のヒント
現在使用しています 祭り. 。JUnit と連携し、失敗したテストのスクリーンショットも取得します。
これには、テスト対象のコンポーネントの名前を検索するデフォルトのコンポーネント検索メソッドがあります (手動で設定する必要があります)。ただし、コンポーネントを渡すことによって、特定のコンポーネントのテスターを生成することもできます。
使ってみることができます キュウリ そして スインガー Swing GUI アプリケーションの機能受け入れテストを平易な英語で作成するためのツールです。Swinger は、Netbeans の Jemmy ライブラリを内部で使用してアプリを駆動します。
Cucumber では次のようなテストを作成できます。
Scenario: Dialog manipulation
Given the frame "SwingSet" is visible
And the frame "SwingSet" is the container
When I click the menu "File/About"
Then I should see the dialog "About Swing!"
Given the dialog "About Swing!" is the container
When I click the button "OK"
Then I should not see the dialog "About Swing!"
これをみて スインガービデオデモ 実際にそれを見てみましょう。
検討中です ジェミー GUI テストの一部を自動化します。期待できそうです。
私が使う java.awt.Robot
. 。良くはありませんし、簡単ではありませんが、毎回うまくいきます。
長所:
- あなたがコントロールしています
- とても早い
- 独自の FWK を構築する
- ポータブル
- 外部依存関係なし
短所:
- テストを構築するための優れた GUI がない
- テスト中は GUI をそのままにしておく必要があります
- 独自の FWK を構築する
- テストコードを変更して最初のハーネスを作成するのが難しい
予算に余裕があるなら、LoadRunner を選ぶと思います。クラスの一番。
(開示:LR を所有する会社との関係はありますが、関係が始まる前から LR と仕事をしていました)
個人的には使ったことはありませんが、 スイングユニット かなり良さそうです。これは jUnit で使用でき、「コンポーネントの場所」に基づいていません (つまり、x および y 座標)。
NetBeans GUI ビルダーで行う必要がある唯一のことは、コンポーネントに一意の名前を設定することです。
私たちが使っているのは QF テスト とかなり満足しています。
UIスペック4J 非常にシンプルで、肥大化せず、拡張可能です。FESTより私の目的にぴったりです。
シクリ:スクリーンショットを使用した GUI テスターhttp://sikuli.org/
使用できます マラソン :「マラソン統合テスト環境、MarathonITE は、手頃な価格で使いやすい、クロスプラットフォームの Java/Swing™ GUI テスト自動化フレームワークです。Python または Ruby で、MarathonITE の組み込みスクリプト レコーダーを使用して、クリーンで読みやすいテスト スクリプトを作成できます。抽出メソッドのリファクタリング、データ駆動型テストの作成、オブジェクトマップ編集などの高度な機能により、保守可能で回復力のあるテスト スイートを作成できます。
試してみてもいいでしょう 再テスト, は、機能回帰テストへの革新的なアプローチを実装し、AI ベースのモンキー テストと組み合わせた新しいツールです。それもオープンソース化されようとしています...
免責事項:私は ReTest の背後にある会社の創設者の 1 人です。
冒険心のある人には、ねっとりとしたものがあります https://github.com/robertoaflores/Gooey Swing アプリケーション用の (非常に基本的で開発中の) プログラム テスト ツール。
簡単なスキャンをいくつか行いました。 ビシャビシャ押しつぶす が最も有望だった。無料ではありませんが