自動化された Web UI テスト [終了]
-
03-07-2019 - |
解決
Seleniumをお勧めします。.NETから使用でき、さまざまなブラウザをサポートし、自動ビルドおよびCIプロセスで動作します(CCNetから使用します)。コードは安定しています。いくつかの癖がありますが、結局のところすべてそうです。
どのツールを選択したとしても、その周りに独自のテストファサードクラスを作成することをお勧めします。ファサードは、テストツールのAPIの詳細をあまり公開せずに、具体的なテストニーズに合わせて設計する必要があります。これにより、テストコードの記述と保守が容易になります。
更新:アプリでASP.NETビューステートを使用する場合、純粋なHTTPテストツールを使用すると問題が発生する可能性があります。これは、ブラウザコントローラー(Seleniumなど)がはるかに優れている場所です。
他のヒント
WatiN
FFおよびIEを自動化します
[Test]
public void SearchForWatiNOnGoogle()
{
using (IE ie = new IE("http://www.google.com"))
{
ie.TextField(Find.ByName("q")).TypeText("WatiN");
ie.Button(Find.ByName("btnG")).Click();
Assert.IsTrue(ie.ContainsText("WatiN"));
}
}
Watinは、深刻なプロジェクトで使用するには非常に不安定です。 「EI is busy」などの予期しない理由で失敗することがよくあります。または「COMオブジェクトのエラー」のようなもの。 Seleniumははるかに安定しており、既に多くのサポートツールがあります。たとえば、Selenium GRIDは、テストの実行時間を大幅に短縮できるソリューションです。 (Watinでの煙テストの実行には6時間かかります。)
現在、私の仕事では QTP で、これまでのところUIで投げたものはほとんど何でも処理でき、GUI以外のサービスをテストするための特別なモードがあり、両方を確認して支援できますシステムを変更するときに問題が発生する場所を絞り込みます。それは私の意見では非常に設定可能であり、その言語としてvbscriptを含めることで、Windows上の多くのものとの統合が可能になり、あなたが望むほとんど何でもできるようになります!たとえば、excel comオブジェクトを制御して成功と失敗のカスタムexcelレポートを作成し、テストが手動で実行され、別のプロジェクトでadodbオブジェクトを使用してページがいつチェックされたかを結果の形式が同じになるようにしますデータベースにそのレコードの正しいデータが含まれているという情報をデータベースに送信します!
ビルドプロセスへの統合に関しては、私はこれを自分で試したことはありませんが、vbsファイルからqtpとテストを起動することは可能ですので、msツールはvbsファイルを実行できるので、これはかなり些細なことだと思いますほとんどのツールから簡単に実行できます。
ライセンスを誰かに購入してもらうことができれば、誰にでもお勧めします!
VSTTを試すこともできます- http://blogs.msdn.com/b/slumley/archive/2009/05/28/vsts-2010-feature-enhancements-for-web-test-playback- ui.aspx
Telerikテストツール- http://www.telerik.com/automated-testing- tools.aspx
Visual Studio UIテストの拡張性–シナリオ&指導原則- http://blogs.msdn.com/b/mathew_aniyan/archive/2011/03/28/visual-studio-ui-test-extensibility-scenarios-amp-guiding-principles.aspx
VSTS Webテストステップバイステップ入門- http://blogs.msdn.com/b/jimmymay/archive/2009/02/23/vsts-web-test-step-by-step-primer-7-minute-video-by-microsoft-ace-performance-エンジニアクリスルンドキストと豊富なノートのスクリーンショットからあなたの謙虚な対応者.aspx
また、ASP.NETチームが自分自身で作成したものを見ることに興味があるかもしれません:軽量テスト自動化フレームワーク。
専用のフォーラムも用意されています。
複数の異なる自動テストソリューション(TestComplete、QTPなど)を使用したため、Telerik + Visual Studioに投票する必要があります。 Telerikには優れたサポートフォーラムがあり、どのようなテストフレームワークとも非常に互換性があります。開発者は、HTMLコードに一意のIDを挿入するため、かなり抜本的なUIリファクタリングを行ってもスクリプトを書き換える必要はありません。記録と再生よりも間違いなく難しいですが、一意のIDを設定すると、自動化コードはほとんど、またはまったくメンテナンスを必要としません。
何を達成したいかによって異なります。
Visual Studio Tester Editionに組み込まれているWebテストを使用できます。自動化が非常に簡単で簡単です。外部データをテストデータソースとして使用でき、VSとうまく統合できます。
自動QAによるテストツール(名前を忘れました)もありますが、見栄えは良いが高価です。
そして、セレンがあります。これがシマンテックで使用しているものです。最大の利点は、テストするブラウザを実際に使用することです。 VSは、httpリクエストパラメータのみを変更することでブラウザを模倣しているため、クロスブラウザの互換性についてサイトをテストできない場合があります。一方、Seleniumはブラウザーを使用して自動化するため、IE、Firefoxなどでサイトを実際にテストできます。VS単体テストと統合して、VSでテスト結果を確認することもできます。
したがって、SeleniumまたはVSをお勧めします。
Seleniumを使用しました。機能は良好で、使用できましたが、バグがありました。
IDEはイベントを誤って記録することが多く(したがって、テストを手動で変更する必要があります)、テストファイルが明確な理由もなく完全に使用できなくなることがありました。また、Selenium IDEでの開発は停止したようです。しばらくの間、バグの修正やパッチはありませんでした。バグレポートは見過ごされているようです。
モリブデンはセレン上に構築された代替品であり、検討する価値があります。
別のオプション (試したことはありませんが、Telerik が気に入っています) を放棄するのは、Telerik の新しいオプションです。 WebUI テスト スタジオ. 。Selenium の賛成票もエコーします。
1つの便利なツールを忘れて、その上にリンクを見つけることができますが、これを見つけることができます... http://weblogs.asp.net/bsimser/archive/2008/02/21/automated-ui-testing-with-project-white.aspx 役立つかもしれません。
記録と再生、マルチスレッド再生、ビルドプロセスとの統合、強力なスクリプト、優れたレポート、優れたサポートを備えたシンプルなクロスブラウザツールをお探しの場合は、 Sahi 。テスター/開発者が学び、維持するのがずっと簡単になります。
Seleniumの近くでもRational Functional Testerを考慮することをお勧めします。 .NetまたはJavaでのコーディングに精通していて、レコードとアンプで遊んでみたいかどうか再生するか、より高度なプログラムによるテストを作成することをお勧めします。
WebDriverは別の可能性です: http://code.google.com/p/webdriver
彼らはあなたにとって興味深いかもしれない.NETラッパーに取り組んでいます。
QEngine をお試しください。 QTPのすべての機能を備えています。
クロスプラットフォームクロスについては、 RIATest をご覧ください。 -Webアプリケーションのブラウザーテスト。
WindowsおよびMacで動作し、サポートされているブラウザーはFirefox、IE、Chromeです。 1つのプラットフォーム/ブラウザで記述された自動テストスクリプトは、サポートされている他のすべてのプラットフォーム/ブラウザに対して実行できます。
必要な機能があります:ユーザーインタラクションの記録モードとCIサーバーとの統合(HudsonなどのCIサーバーで使用できるJUnit形式で結果を出力します)。
(免責事項:私はRIATestチームのメンバーです。)