假设我的代码基础与单元测试覆盖率一样高,这是有道理的.(超过某一点,增加覆盖率并没有很好的投资回报率.)
接下来我想测试性能.对代码进行基准测试以确保新提交不会不必要地降低速度.Safari 对于提交减速的零容忍政策让我非常感兴趣.对于大多数项目,我不确定对速度的承诺程度是否具有良好的投资回报率,但我至少想知道速度回归已经发生,并能够对此做出判断.
环境是Linux上的Python,对BASH脚本也可行的建议会让我非常开心.(但Python是主要焦点.)
如果可能,您将希望在系统级别进行性能测试 - 在整个上下文中测试您的应用程序,尽可能接近生产使用的数据和行为.
这并不容易,自动化并获得一致的结果将更加困难.
此外,您不能使用VM进行性能测试(除非您的生产环境在VM中运行,即使这样,您也需要在没有其他任何内容的主机上运行VM).
当你说进行性能单元测试时,这可能是有价值的,但前提是它被用于诊断系统级别(不仅仅是开发人员的头脑)中存在的问题.
此外,单元测试中单元的性能有时无法反映其在上下文中的性能,因此它可能根本没用.
虽然我同意在系统级别测试性能最终更具相关性,但如果您想对Python进行UnitTest样式负载测试,FunkLoad http://funkload.nuxeo.org/就是这么做的.
当您尝试加速代码库中的特定操作时,微基准测试就会占有一席之地.完成后续性能单元测试是一种有用的方法,可确保您刚刚优化的此操作在未来提交时不会无意中降低性能.