JUnit 是编写性能测试的正确工具吗?[已关闭]

2022-09-01 00:06:50

在上周,我创建了两个班级,我的团队对他们的表现表示了一些担忧。为了评估我的代码,我编写了一些简单的JUnit测试,这些测试通过构建丰富的测试数据集来执行这些类,然后通过相关方法提供该数据以进行数千次迭代。我记录了每次迭代的运行时,然后使用循环和 .最后,我让JUnit断言高点和平均时间在可接受的范围内。这种测试方法让我的团队对这段代码充满信心。System.nanoTime()

JUnit是以这种方式测试性能的正确工具吗?有没有更好的工具在单元(方法和类)级别测试性能?


答案 1

可能有更好的方法,但也有一些框架可以帮助实现JUnit的基准测试。一些有用的做法是热身运行,统计评估。看看 JUnitBenchmarksJUnitPerf

编辑看起来JUnitBenchmarks已经被弃用了,因为这个问题已经被陈述了。该项目的维护人员建议转向JMH。谢谢你,Barry NL的提醒。


答案 2

不。JUnit 是为单元测试而设计的。在用Java编写性能测试时,有很多事情需要注意。使用专为编写微基准测试而设计的Google Caliper

看看如何在Java中编写正确的微基准测试?


推荐