このセクションの内容
IIS サーバー上にデプロイされた実行中の Web アプリケーション サーバーで手動または自動での機能テストを実行し、マネージド コードのカバレッジ データをモニターおよび収集できます。
dotTEST は IIS サーバーにデプロイされた .NET Web アプリケーションのカバレッジを収集できます。また、dotTEST に付属の |
dotTEST カバレッジ エージェントは、テスト対象アプリケーション (AUT) にアタッチされ、AUT の実行されたコードをモニターします。AUT にカバレッジ エージェントをアタッチすると、REST API が公開され、テストおよびテスト セッションの開始および終了をマークできるようになります。テスト実行時には、カバレッジ エージェントとのやりとりが動的カバレッジ マップに書き込まれます。このマップには、実行されたコード行を示すマーカーが記録されます。dotTEST は収集されたカバレッジ データを処理し、DTP に送信される coverage.xml ファイルを作成します。
テスト実行ツールの結果 (SOAtest のテスト、dotTEST によって実行されたテスト、手動テストなど) も report.xml という形で DTP に送信されます。カバレッジ データ ファイルとレポートのビルド ID が一致すると、DTP はそれらのデータを関連付け、カバレッジ情報に表示します。
ソース管理システムを使用する場合、適切にソース管理システムを設定します。「ソース管理システムの設定」を参照してください。 |
カバレッジを収集するには、Internet Information Services (IIS) バージョン 7.5 以上が必要です。
AUT の準備には、以下の手順が含まれます。
エージェントをホーム ディレクトリ (%USERPROFILE% ディレクトリ) にデプロイすることは、We ベースのアプリケーションからのカバレッジ収集を妨げる可能性があるため、推奨されません。 |
このマシンで Agent Client ツールを実行し、IIS 内での実行時カバレッジ収集を有効にします。
agent_client.exe |
Agent Client に追加のオプション指定が必要な場合があります。「Agent Client オプション」を参照してください。
agent_client は、Web サーバー (IIS) の環境を初期化し、サービスのように振る舞い、ユーザーがテストを実行してカバレッジを収集することを可能にします。次のメッセージが表示されている間、サービスが待機し、コマンドを受け付けます。
Write 'exit' and hit Enter to close agent_client |
テスト対象 Web サイトまたはアプリケーションがまだロードされていないときでも、セッションおよびテストを開始できることに注意してください。 |
次のアドレスに移動し、カバレッジ エージェントのステータスを確認します。 http://host:8050/status
次のレスポンスが返されるはずです。
{"session":null,"test":null} |
デフォルトでは、カバレッジ エージェントは HTTP プロトコル経由で利用できます。HTTPS 経由で接続するには、カバレッジ エージェントが使用するポートに SSL証明書をバインドする必要があります。それには、以下のいずれかの操作を行います。
Netsh.exe ツールがアクセス可能な場所に SSL 証明書を追加し、証明書のハッシュおよびポート番号を agent_client.exe に渡します。
agent_client.exe -port 8050 -useSsl -certificateHash <SSL certificate hash> |
.pfx ファイルに格納された SSL 証明書へのパスとパスワードを agent_client.exe に渡します。
agent_client.exe -port 8050 -useSsl -certificatePath <path to PFX> -certificatePassword <password> |
Netsh.exe ツールでポートに SSL 証明書と Agent Client の appid
を設定します。Agent Client の ID は次のとおりです。
{ed344e08-fab7-4dfb-9d07-68f2c2c9e373} |
Netsh.exe ツールで SSL 証明書を設定すると、-port
および -useSsl
スイッチを指定して Agent Client を起動することで、HTTP 経由で接続できます。
agent_client.exe -port 8050 -useSsl |
自己署名証明書を使用するには、-skipvalidation
オプションを追加する必要があります。
PFX または PKCS12 フォーマットの SSL 証明書を利用できます。
デフォルトでは、Agent Client はカバレッジ エージェント用に設定された証明書を自動的に処理します。手動で証明書を削除するには、Certmgr.exe ツールを起動し、Personal> Certificates に格納された証明書を削除します。
-unregister
スイッチを指定して Agent Client でカバレッジ サービス ポートの登録を解除する場合、-useSsl
および -removeCertificate
スイッチを追加して SSL 証明書を削除する必要があります。
agent_client.exe -unregister -port 8050 -useSsl -removeCertificate |
こうすると、ポート番号から SSL 証明書が削除されます。これで、ストレージから手動で証明書を削除できるようになりました。
1 つの Web アプリケーションに同時にアクセスする複数のユーザーのカバレッジ情報を収集できます。それには、-multiuser
スイッチを指定して Agent Client を起動します。
agent_client.exe -multiuser |
デフォルトでは、Agent Client のアプリケーション プール プロセスは 20 分のアイドル タイムが経過するとシャットダウンしますが、このことがテスト セッションに悪影響を与える可能性があります。デフォルトのアイドル タイム値を変更し、シャットダウンを防ぐことによって、アプリケーションを操作するユーザーがテスト セッション中に予期しないサーバーの停止および再起動に遭遇しないようにできます。
オプション | 値 | 説明 | |
---|---|---|---|
-scope | <path> | スコープ設定ファイルへのパスです。デフォルト以外のスコープを使用する場合に必要です。「dottestcli を使用したカバレッジ スコープのカスタマイズ」を参照してください | |
-agentTimeout | <miliseconds> | カバレッジ エージェントとの接続のタイムアウト時間を指定します。マシンの性能に合わせて値を調整してください。デフォルト値は 1500 ms です。
| |
-port | <port number> | デフォルトのポートが使用できない場合に agent_client の起動時に使用するポート番号を使用します。 | |
-multiuser | 複数ユーザーのカバレッジ情報収集を有効化します。「複数ユーザーからのカバレッジ収集」を参照してください。 | ||
-useSsl | HTTPS 経由の接続を有効にします。「HTTPS 経由での Coverage Agent への接続」を参照してください。 | ||
-certificateHash | <SSL certificate hash> | カバレッジ エージェントが使用するポート用の SSL 証明書のハッシュを指定します。「HTTPS 経由での Coverage Agent への接続」を参照してください。 | |
-certificatePath | <path> | SSL 証明書を格納した PFX ファイルへのパスを指定します。「HTTPS 経由での Coverage Agent への接続」を参照してください。 | |
-certificatePassword | <password> | PFX ファイルに格納された SSL 証明書のパスワードを指定します。「HTTPS 経由での Coverage Agent への接続」を参照してください。 | |
-displayappid | Agent Client の 'appid' を出力します。「HTTPS 経由での Coverage Agent への接続」を参照してください。 | ||
-removeCertificate | -unregister スイッチを使用して手動でポートの登録を解除する場合に、SSL 証明書を削除します。「HTTPS 経由での Coverage Agent への接続」を参照してください。 | ||
-skipvalidation | 自己署名 SSL 証明書の使用を有効化します。「HTTPS 経由での Coverage Agent への接続」を参照してください。 |
実行時カバレッジを収集するには、次の方法があります。
実行時カバレッジ データの収集を停止するには、以下のいずれかの操作を行います。
コンソールに次のメッセージが表示されている状態で exit
と入力し、agent_client を停止します。
Write 'exit' and hit Enter to close agent_client |
ブラウザーに次の URL を入力することで、サービスにリクエストを送信します: http://host:port/shutdown
すべてのセッションが完了しているときにだけ agent_client を停止してください。サービスを停止すると、アプリケーション カバレッジが収集されなくなるため、カバレッジを収集するテストが実行されている間は、常に agent_client を実行しておくことが重要です。 |
agent_client の終了時にエラーが発生し、Web サーバー環境のクリーンアップが行われなかった場合、-stop
パラメーターを指定して agent_client を実行することで、元の Web サーバー環境および設定を復元してください。
agent_client.exe -stop |
「カバレッジ レポートの作成と DTP へのデータのアップロード」を参照してください。