3

大規模な Web アプリケーションでSeleniumテスト キャンペーンを設定しています。最初に行ったことは、テスト前にデータベース内の SQL データを初期化し、テストを開始し、結果をアーカイブしてからデータをクリアするフレームワークを構築することでした。

これを専用データベースでTeamCityによって毎日実行される Maven 2 プロセスに統合しました。

現在、いくつかの Selenium テストをセットアップしていますが、計画どおりには使用されていません。

理由は、回帰以外の理由でテストが壊れることがあるためです (データが変更された、ストアド プロシージャが再コンパイルされたなど)。

ユーザー インターフェイスのテストで大きな成功を収めているかどうか、もしそうならその理由を知りたいです。Commons エラーも興味深いかもしれません。

4

3 に答える 3

1

テスト可能性は大いに役立ちます。Web アプリのテスト容易性にとって最大の利点は、ページ上で操作する必要があるすべての HTML 要素に一意で一貫した属性がある場合です。HTML 要素 (Selenium は xpath を使用) を識別するために使用している属性が、ビルド間またはセッション間で一貫性/信頼性がない場合、テスト スクリプトは失敗します。また、自動化ツール (この場合は Selenium) が Web ページ上のオブジェクトを確実に検出できるように、これらの属性は一意である必要があります。

于 2008-09-30T18:24:55.767 に答える
1

信頼性の高い単体テストが必要な場合は、同じ入力が必要です。データベースの開始状態は入力です。したがって、毎回同じ開始データベースを用意する必要があります。もちろん、異なるinputでテストしたい場合は、別の単体テストを作成する必要があります (結果は明らかに同じではないため)。

このようなことをするときは、常に同じデータベースを出発点として使用します。もちろん、データベースを正しい方法で変更せずに一部のテストが失敗する可能性があるため、他の後続のテストは、そうでない場合でも失敗する可能性があります。単体テスト ツールで許可されている場合は、テスト間の依存関係を定義して、「親」のテストが失敗したときにそれらのテストがまったく実行されないようにする必要があります。

于 2008-09-29T07:36:34.053 に答える
0

ページにスタイリングが追加される前に機能するという追加の利点がある http-unit を使用します。

http://httpunit.sourceforge.net/ テストを添付して、maven2 の統合テスト フェーズで実行できます。

サイトから

Java で記述された HttpUnit は、フォームの送信、JavaScript、基本的な http 認証、Cookie、自動ページ リダイレクトなど、ブラウザーの動作の関連部分をエミュレートし、Java テスト コードで返されたページをテキスト、XML DOM、またはフォームのコンテナーとして検査できるようにします。 、表、およびリンク。

于 2008-09-29T07:30:19.950 に答える