3

単体テストや統合テスト (構造やガイドラインのない開発者/ユーザーによるすべてのテスト) を行ったことのない既存の Web アプリケーションの複雑なワークフロー テストを構築するという興味深いタスクがあります。

設定

ターゲットは、数年かけて構築された ASP.NET (MVC なし) Web アプリケーションです。クリーンな MVC やその他のパタ​​ーンがないため、HTML 出力は非常に悪いです (生成された ID、CSS クラスがあまりなく、CSS スタイルに沿っている --> テストが難しい)。アプリケーションはデータ中心であるため、テストすることが多く、データベースのステータスはテストにとって非常に重要です。

次のワークフローを考えています: 1. データベースをリセットして開始データをテストする 2.シミュレーション ユーザー インタラクションによってデータを作成およびテストするテストを実行する

ツール

Selenium IDE をいじっていましたが、十分に構造化されていないように感じます。私は、ブラウザで実行できる(読み書きのできる)coffeescript / javascriptでテストを書くことができるツールセットを夢見ています(ヘッドレステストは必要ありません)が、私が見つけることができるすべてのツールは、ユーザーではなくJavaScript機能をテストすることを目的としています相互作用。

私のテスト手順は次のとおりです。

  1. ページの読み込み
  2. テキスト A を検索するか、ul B の要素を数えることによって、ページが正しく読み込まれたかどうかをテストします
  3. ボタン C をクリックし、ポップアップ D を待ち、フィールド E にテキストを入力します。
  4. 保存ボタンをクリックし、フィールド E のテキストが要素 F に表示されているかどうかを確認します

jasmineはこの種のユーザー インタラクションをテストできますか? javascript 関数または HTML 要素の存在に関するジャスミン テストのみを見つけることができますが、相互に依存するテスト ステップを含む複雑なワークフローについては見つけることができません。

前もって感謝します!

4

3 に答える 3

3

Selenium IDE は、これに適した方法ではありません。

Selenium は WebDriver JSON Wire Protocol に基づいて構築されています。この「ベース」を持つということは、すべて同じ種類の API を使用して、多くの異なる言語に非常に簡単にプラグインできることを意味します。

それらの 1 つは JavaScript です。

https://code.google.com/p/selenium/wiki/WebDriverJs

免責事項: JS バインディングは非常に新しいものです。

なぜJavaScriptでそれをしなければならないのか、特にこれがあなたの選択肢を厳しく制限していることがわかるので、私にはよくわかりません。

于 2013-03-18T12:56:44.687 に答える
0

Web アプリケーションのクロスプラットフォーム クロスブラウザ テストについては、 RIATestを参照してください。JavaScript に非常によく似た ECMAScript ベースのスクリプト言語を使用します。

Windows と Mac で動作し、サポートされているブラウザーは Firefox、IE、Chrome です。1 つのプラットフォーム/ブラウザーで作成された自動テスト スクリプトは、サポートされている他のすべてのプラットフォーム/ブラウザーに対して実行できます。

あなたが説明した手順を自動化することは確かに可能です。動的に生成された ID は適切ではありませんが、他のプロパティ (テキスト、要素の種類など) を使用して、自動化してテストする HTML オブジェクトを識別できるはずです。

(免責事項: 私は RIATest チームのメンバーです)。

于 2013-03-20T12:48:53.200 に答える
0

IBM Rational Functional Testerをお勧めします。Java ベースなので、非常に拡張性があります。Javascript ではないため、テストは Java コードで記述されていることに注意してください。ほとんどの場合、レコーダーがあります。クリックするだけで、アクションが記録されます。

それを使用した自動テストに関して、ここに私の意見があり ます。

業務用商品です。私は IBM とは提携していませんが、RFT をよく使用しています。

于 2013-03-19T13:10:19.527 に答える