使用 JMH 作为 functional/user 级别性能测试的框架。这是错的吗?

Using JMH as a framework for performance testing on functional/user level. Is it wrong?

我想使用 JMH 作为 Web 应用程序 functional/user 级别性能测试的框架。想象一下,我使用 JMH 来测量从 100 个用户同时单击 "Post Your Question" 到用户看到他们的问题发布的那一刻所花费的时间。

这是完全错误的吗?这种方法有什么缺点?

现在使用这种方法大约6个月了,我想说我仍然没有看到任何缺点。我学到的一些东西:

  • 尽管 functional/user 级别的准确度较低,但了解各种配置参数的工作方式非常重要(尤其是与 JVM 相关的参数,例如 fork)。它们可能会影响您构建测试的方式、您如何 运行 它们以及您测量什么。
  • JMH 确实是轻量级和高效的,因此与使用其他框架获得的结果进行比较可能无效(基本上我们看到 运行 JMH 时性能提升了 10-20%);我必须建立一个新的基线。
  • JMH Jenkins plug-in 有助于可视化结果