見出し画像

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

■Windows フォーム

HawkEye 2

実行時にプロパティ、フィールドの確認/変更、イベントハンドラの確認/実行などができます。
あまり知られていませんが(日本語の紹介記事はほかに見たことがない)、すごいツールです。
元祖 HawkEye の時代から、10年以上の間重宝しています。

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

画像1

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

wfSpy

実行時にプロパティの確認/変更ができます。
ソースコードをダウンロードしてビルドします。
管理者として実行する必要があります。

■WPF

Visual Studio(2015 以降)

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

WPF Inspector

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

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ドライバです。
.NET アプリケーションです。

UI要素をツリーで確認できます。
ツリーで選択された 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/クッキーなど様々なビューで確認できます。

この記事が気に入ったらサポートをしてみませんか?