Edited at

[.NET] 便利な実行時インスペクションツール(フリー/オープンソース)~丸見え&診断、動的変更も~ ※掘り出し物あり


Windows フォーム


HawkEye 2

実行中のEXEにアタッチしてプロパティ、フィールドの確認/変更、イベントハンドラの確認/実行などができます。

あまり知られていませんが(日本語の紹介記事はほかに見たことがない)、すごいツールです。重宝します。

左上の◎を実行中の画面コントロールにドラッグして使います。

Hawkeye 2.png

CodePlex で開発されていた HawkEye(.NET 3.5 まで)を引き継いだ形で、.NET 4 以降にも対応しています。


wfSpy

実行時にプロパティの確認/変更ができます。

ソースコードをダウンロードしてビルドします。

管理者として実行する必要があります。


WPF


Visual Studio(2015 以降)

デバッグ中に [デバッグ]-[ウィンドウ] から「ライブビジュアルツリー」「ライブプロパティエクスプローラー」が使用できます。


WPF Inspector

非デバッグ実行時に XAML 要素をツリー表示し、プロパティやバインドされたビューモデルの中身を確認/変更できます。

リソース、トリガー、スタイルを確認することもできます。


UIオートメーション

Windows フォーム、WPF、Windows ストアアプリ、UWP などのデスクトップアプリケーションにアクセスし、共通のインターフェイスでUI要素を扱うことができます。


Inspect

UI要素をツリーで確認できます。

UI Spy の後継という位置づけで、旧来の MSAAI (Microsoft Active Accessibility) にも対応しています(左上のドロップダウンで切り替え)。

ネイティブプログラムです。

マウスカーソルの位置にある要素がツリー上で自動選択され、属性が表示されます。

Windows Application Driver(WinAppDriver) を利用して自動UIテストを記述する際、要素のIDや名前、構成を確認するのに欠かせないツールです。

[Action] メニューから要素に対して操作を実行することも可能です。

Windows 用のソフトウェア開発キット (Windows SDK) に含まれています。

Windows SDK とエミュレーターのアーカイブ


%ProgramFiles(x86)%\Windows Kits\<major_version>\bin\<version>\<platform>\inspect.exe


※<> 内は環境によって異なります。


Visual UI Automation Verify (Visual UIA Verify)

UIオートメーションの実装を検証するUIテストライブラリのGUIドライバです。

UI要素をツリーで確認できます。

.NET アプリケーションです。

ツリーで選択された XAML 要素は実際のウィンドウ上でハイライト表示されます。

[Tests] ペインから要素に対する操作を検証することができます。

Windows 用のソフトウェア開発キット (Windows SDK) に含まれています。

Windows SDK とエミュレーターのアーカイブ


%ProgramFiles(x86)%\Windows Kits\<major_version>\bin\<version>\<platform>\UIAVerify\VisualUIAVerifyNative.exe


※<> 内は環境によって異なります。


WinAppDriver UI Recorder

記録がアクティブなときに行った操作が解析され、WinAppDriver を利用したテスト向けの C# コードが自動生成されます。

自動生成されたコードでは、要素は XPath の絶対パスで特定されます。

そのまま使えるほどメンテナンス性のよいコードが生成されるわけではありません。

Excel のマクロ記録と同様、補助的に使うのがよさそうです。


ASP.NET


Glimpse

実行時にブラウザ下部に診断結果が表示されます。

コントロールツリー、サーバーイベント、各フェーズの処理時間、リクエスト、セッション、ルート解析など、様々な情報を確認することができます。

WebフォームでもMVCでも使用できます。


Prefix

ASP.NET Core に対応しています。

《セットアップ》

 (1) Prefix をインストールします。

 (2) StackifyMiddleware パッケージを Nuget でインストールします。

 (3) Startup クラスの Configure メソッドで StackifyMiddleware をミドルウェア登録(UseMiddleware)します。

 (4) タスクトレイの Prefix コンテキストメニューから [Enable .NET Profiler] を選択して有効化します。

 (5) タスクバルーンで促されたら Visual Studio を再起動します。

 (6) Webアプリケーションを IIS Express で開始します。

 (7) タスクトレイの Prefix コンテキストメニューから [Open in browser] を選択し、トレースページを開きます。


Application Insights

監視データを Microsoft Azure に送信し、ポータルで診断結果を確認できます。

Azure アカウントが必要です。

料金や無料枠についてはこちらをご参照ください。

アプリケーションが Azure 上でホスティングされている必要はなく、「インストルメンテーション キー」で関連づけることにより、オンプレミス運用や開発環境のデバッグ目的でも使用できます。

監視適用方法には「ビルド時(SDK)」「実行時(Status Monitor)」の二種類があります。

オペレーティングシステム、IIS サーバー、サーバーアプリケーション、データベースアクセス、クライアントスクリプトが監視対象となり、リクエスト応答時間、内部処理のタイムライン、SQL、トレースログ、エラー内容、CPU/メモリ/ネットワーク使用率、ユーザー数とセッション数などが診断結果として確認できます。

カスタムクエリによる監視データ抽出、グラフ表示が可能な Analytics というツールも提供されています。


ネットワーク


Fiddler

ブラウザ/非ブラウザの通信をキャプチャしてくれます。

リクエスト/レスポンスを上下に並べて、テキスト/JSON/XML/クッキーなど様々なビューで確認できます。