web-dev-qa-db-ja.com

カバレッジを測定するにはどうすればよいですか(本稼働システム)?

実稼働システムで実行される私のPythonコードのカバレッジを測定したいと思います。

私はこの質問に対する答えを求めています:

頻繁に実行される行(ホットスポット)と使用されない行(デッドコード)

もちろん、これによって本番サイトが遅くなることはありません。

私はnotテストのカバレッジの測定について話している。

6
guettli

私がそれを正しく理解していれば、アプリケーションのどの部分がユーザーによって最も頻繁に使用されるかを知りたいと思います。


TL; DR;

手動で実行したくない場合は、pythonのメトリックフレームワークのいずれかを使用してください。一部は上記のものです。


これは通常、関数レベルで行われ、実際にはアプリケーションによって異なります。

  • インターネットにアクセスできるデスクトップアプリの場合:

    単純なdbを作成し、関数が呼び出された回数を収集できます。それを実現するために、単純な関数を記述して、追跡するすべての関数内で呼び出すことができます。その後、データをインターネットにアップロードする非同期タスクを定義できます。

  • Webアプリケーションの場合:

    Js(ユーザーの行動追跡に最も推奨される)またはWeb APIから呼び出された関数を追跡できます。外側から内側に移動することをお勧めします。まず、頻繁に呼び出されるエンドポイントを検出します(nginxのようなプロキシを使用している場合は、サーバーログを分析して情報を収集できます。これが最も簡単でクリーンな方法です)。その後、追跡したい他のすべての機能にロガーを挿入し、毎週または毎月のログを単純に分析します。

しかし、プロダクションコードを1行ずつ分析する必要があります(これは非常に悪い考えです)、pythonプロファイラーでアプリケーションを開始できます。Pythonにはすでに1つあります) : cProfile

0