当前位置: 首页 > 面试题库 >

JUnit是编写性能测试的正确工具吗?

乌和畅
2023-03-14
问题内容

在上周,我创建了两个班,我的团队对他们的表现表达了一些担忧。为了评估我的代码,我编写了一些简单的JUnit测试,它们通过构建丰富的测试数据集,然后通过相关方法将这些数据馈入数千次迭代来练习这些类。我记录了每次迭代的运行时间,然后使用循环和注销了高,低和平均时间System.nanoTime()。最终,我让JUnit断言,高频率和平均时间都在可接受的范围内。这种测试方法使我的团队对此代码充满信心。

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


问题答案:

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

*自从提出问题以来, *EDIT
似乎已弃用JUnitBenchmarks。该项目的维护者建议继续使用JMH。谢谢Barry NL的提示。



 类似资料:
  • 目录 http_load webbench ab siege http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。 但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死。 还可以测试HTTPS类的网站请求。 下载地址:http_load-12mar2006.tar.gz 安装很简单 tar z

  • 请注意,我没有访问实际的代码在一个地方,我可以张贴它。 此外,我也限于(由于不幸的原因)使用Spring 3.0.5或3.1.2。

  • 我是故意在谈论系统测试。我们确实有一套相当详尽的单元测试,其中一些使用了模拟,而这些测试不会去任何地方。系统测试应该是对单元测试的补充,因此,模拟不是一种选择。 如果我将替换为一个test-method(让我们称之为),并引入一个顺序依赖项(使用JUnit 5非常容易),它强制在运行任何其他测试之前运行,那么这些问题就会消失。 到目前为止还好!这看起来和工作很好。当测试不是由CI服务器执行,而是由

  • 我在学习测试。但是我发现在TestNG6.8中,注释测试后有问题。 它来自http://testng.org/doc/documentation-main.html。 但实际上,我的测试用例还没有启动,@AfterTest已执行!为什么?像这样输出。

  • customer-Mapper.xml daoimpl.java

  • 我想用mock它来模拟下面代码中的数据源对象,但每次我都得到空指针异常。 我试过嘲笑数据源和连接,但似乎什么都不起作用。