2

現在のテスト スイートと、フル スタックの統合/受け入れテストによる継続的統合ビルドを強化したいと考えています。

ユーザー ストーリーの実行中にフロント エンドの JavaScript を実行できる Culerity や Selenium などのツールを検討しています。複雑なテスト環境を維持するために膨大な開発時間を費やすことなく、フロントエンドの JavaScript と高レベルの機能をカバーできるものを探しています。現在、Rspec、Cucumber、CruiseControl.rb を使用しているため、これらのツールと簡単に統合できれば理想的です。

ヘッドレス ブラウザと js 対応のテスト環境のいずれかで、面倒なセットアップと保守を行う価値があるか? あなたが遭遇した最良の選択肢と避けるべき落とし穴は何ですか?

ありがとう。

4

1 に答える 1

1

あなたは私よりもはるかにこの道を進んでいるように聞こえますが、とにかくコメントします.

私は JavaScript プロジェクト (Java + MySQL バックエンドを使用) に取り組んでおり、テストに Selenium を使用することに決め、可能な限り完全なカバレッジを達成しようとしました。他にもいくつかのテスト ツールを試してみましたが、どれも本当によく知っているとは言えません。それらの Web サイトから、Selenium と比較して非常に洗練された、または人気があるように見えるものはありませんでした。最終的には CruiseControl に統合する予定ですが、まだ行っていません。

これは興味深いプロジェクトであり、最終的には Selenium に非常に満足しています。セレンプラス:

  1. テストの「スクリプト」はすべて Java で記述でき、あいまいなスクリプト言語は必要ありません。とりわけ、テストの前後にデータベース内のデータを操作および検証することなどを簡単に行うことができます。
  2. Se は Perl や C# などもサポートしています。
  3. Selenium IDE は、Se がどのように機能するか、ロケーターがどのように機能するかなどをすばやく理解するための優れたツールです。IDE を使用して実際に長期にわたってテストを実行する必要はありません。 .
  4. Se は jUnit で問題なく動作するようです。おそらくTestNGもそうですが、まだ試していません。私のtodoリストに載っています。
  5. 優れたドキュメントと Web サイト。

マイナス:

  1. すべての場合に要素を見つける方法を理解するのに多くの時間を費やしました。これは、Selenium ではなく、私が使用しているフレームワーク (ExtJS) の「障害」の一部です。
  2. あなたが何をしても、Seにはタイミングの依存関係があります。機能させるために人為的な一時停止を挿入する必要がある場所。
  3. 私のテストには、モニターサイズの依存関係もあります。これは非常に望ましくないと思いますが、一部の場所では避けられないようです。基本的に、これは、JS がプログラムによるクリックをサポートしていない多くの要素タイプがあるためです。
  4. #3に関連して、マウスを動かさなければならない場所があります。つまり、専用のテスト PC が必要です。これは大したことではありませんが、正しくないようです。
  5. テストが遅い - 主に Se が Firefox を起動するのに時間がかかるためです。これは間違いなく私の環境の一部であり、これを改善するために多くのことができると思います. しかし、それは本当に目立ち、その理由は明らかではありません。約 40 個のテストを実行するには、約 10 分かかります。
  6. サポート フォーラムは非常にむらがあります。まあ、あなたはあなたが支払うものを手に入れます。しかし、誰かが私の問題について投稿したことが何度もあり、投稿が無視されたか、OPが提案が偽物であると指摘したときにフォローアップなしで無効な解決策が提供されました.

HTH、乾杯。

于 2010-01-14T21:42:45.603 に答える