LoginSignup
16
23

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-02-03

Windows フォーム

HawkEye 2

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

左上のを実行中の画面コントロールにドラッグして使います。
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/クッキーなど様々なビューで確認できます。

16
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
23