実稼働システムで実行される私のPythonコードのカバレッジを測定したいと思います。
私はこの質問に対する答えを求めています:
頻繁に実行される行(ホットスポット)と使用されない行(デッドコード)
もちろん、これによって本番サイトが遅くなることはありません。
私はnotテストのカバレッジの測定について話している。
私がそれを正しく理解していれば、アプリケーションのどの部分がユーザーによって最も頻繁に使用されるかを知りたいと思います。
TL; DR;
手動で実行したくない場合は、pythonのメトリックフレームワークのいずれかを使用してください。一部は上記のものです。
これは通常、関数レベルで行われ、実際にはアプリケーションによって異なります。
インターネットにアクセスできるデスクトップアプリの場合:
単純なdbを作成し、関数が呼び出された回数を収集できます。それを実現するために、単純な関数を記述して、追跡するすべての関数内で呼び出すことができます。その後、データをインターネットにアップロードする非同期タスクを定義できます。
Webアプリケーションの場合:
Js(ユーザーの行動追跡に最も推奨される)またはWeb APIから呼び出された関数を追跡できます。外側から内側に移動することをお勧めします。まず、頻繁に呼び出されるエンドポイントを検出します(nginxのようなプロキシを使用している場合は、サーバーログを分析して情報を収集できます。これが最も簡単でクリーンな方法です)。その後、追跡したい他のすべての機能にロガーを挿入し、毎週または毎月のログを単純に分析します。
しかし、プロダクションコードを1行ずつ分析する必要があります(これは非常に悪い考えです)、pythonプロファイラーでアプリケーションを開始できます。Pythonにはすでに1つあります) : cProfile 。