リリース間の暫定的なパフォーマンスへの影響を見積もるために、私たちが何をしようとしているのかを説明します。それが最善のアプローチかどうかはわかりませんが、私たちにとってはうまくいきます。
Python/Django プロジェクトにはたくさんのテストがあります。テストランナーとしてnoseを使用しています。ご存知かもしれませんが、--with-xunit
テスト結果を xUnit 形式の xml ファイルにダンプするコマンドライン オプションが組み込まれています (ちなみにこれは jenkins CI でサポートされています)。
リリースを行うたびに、テストを実行し、nose が xml ファイルを生成します (それをコード リポジトリに保存します)。ここにその一部があります:
...
<testcase classname="prj.tests.functional.services.workflow.test_getCases.GetCases" name="test_full_access_ok"
time="1.775"/>
<testcase classname="prj.tests.functional.services.workflow.test_getCases.GetCases"
name="test_illegal_assigned_flag" time="0.008"/>
<testcase classname="prj.tests.functional.services.workflow.test_getCases.GetCases" name="test_illegal_comments"
time="0.049"/>
...
お気づきかもしれませんが、time
すべてのテスト ケースに属性があります。したがって、テスト ケースの実行時間を名前ごとに、以前および現在のリリースと比較しているだけです (基本的には、2 つの xml ファイルを比較しています)。
それが役立つことを願っています。