私はwinrunner、QTPなどのテスト自動化ツールがどのように動作するのか知りたいと思います。これらのツールがウィンドウによって提供されるテストAPIを使用するのか、IPCとイベントに依存するのか私は彼らがどのように動作するか把握できませんでした。私にとっては、QTP記録と再生機能は魔法のようです。どのような指針も高く評価されますか?.netを使用してQTPやwinrunnerなどのテスト自動化ツールを書くには?
答えて
QTPについてよく知りません。しかし、あなたが内部を知りたければ、Watin- for dotnetとWatir- for rubyのようなオープンソースプロジェクトをダウンロードし、内部で何が起こっているかを見てください。どちらもWebテストの自動化に使用されます。コードは自由に利用できます。
Nunitのようなユニットテストフレームワークをお探しの場合は、 Nunitは、クラスを "TestFixtures"で識別し、メソッドを "Test"属性で識別します。これらのテスト方法についてアプリケーション全体をスキャンし、テストをトリガーします。
私は彼らがWin32 Hooksを使っていると思います。
編集:here is .NETでフックを定義する例。
実際、WatiNは悪い場所ではありません。それは正確にユニットテストフレームワークではありません。それは、ファーサイトでのように見えるかもしれませんが、機能テストを書くのに使用されます。ユニットテストのように走らせるのはあなた次第です。私はWatiNを使って2つの方法(Webページ上のユーザの行動をシミュレートした機能テスト)を使って同じテストを書いていました:1)他のPSスクリプトと同様にコマンドラインから実行してPowershellにスクリプトを書く。面白かったですが、レポート、例外処理などのためにたくさんのコードを書く必要がありました。
2)MSVSプロジェクトタイプのC#ユニットテストを使用して、C#でMSVSでユニットテストを作成する。これは実際には単体テストのようなMSVSで実行するだけなので、実際は面白かったですが、コードの作成、レポート作成、実行などの環境サポートがあります。
WatnN、特にWatiNアクションを記録し、C#でコードを出力する専用のレコーダーを備えています。図書館とツールの内部を見ると、あなたにはいくらかの始まりがあります。
言葉だけで言えば、それはウェブだけです。デスクトップはまったく異なっています。 Webでは、IEのフックを持っているので、ブラウザの状態をチェックして、オブジェクトのHTMLドキュメントを照会することができます。デスクトップの方が難しいかもしれません。 Win32hooksを使ってアプリケーションに接続する必要があります。多分、Microsoft Scripting Hostを試してみてください。
Win32/64テクノロジCOM、OLEを使用してC、C++でプログラミングし、Active accesibility APIを使用している必要があります。間違いなく、これらのテクノロジに関する大きなAPIを作成した可能性があります。彼らはアセンブリプログラミングを少し使用しているかもしれません。
こんにちは、私は単体テストのフレームワークを探していません。私はQTPのようなアプリケーションを書く方法を知ることに興味があります。基本的には、QTPがWindowsアプリケーションやWebアプリケーションであなたのアクションを記録して再生する方法を知りたいと思っています。これらのアプリケーションを書くことは、debuggeresを書くことに似ています。私は、ウィンドウが他のアプリケーションのウィンドウ内のコントロールを知るためのAPIを提供しているかどうかを知りたい。混乱させて申し訳ありません。 – raj