5

是否有在 JVM 上编写自动化性能测试的框架?

我想设置一些性能目标并在每次性能低于目标时闪烁红灯(或者更确切地说打印红色控制台消息)。

我有一些用 Calliper 编写的基准,我手动运行,但是我希望性能测试套件能够像单元测试一样自动运行。

没有数据库或网络服务器。

4

3 回答 3

1

由于第 4 版 JUnit 支持该功能:

import org.junit.*;

public class JunitTest4 {

    // timings below are in milliseconds
    @Test(timeout = 1000)  
    public void infinity() {
        // will fail    
        while (true);  
    }  

}

但遗憾的是,它只是一个基本功能,不确定你是否会完全满意:你不能测量小于毫秒的东西,你不能存储测试的历史记录,你看不到你离目标。

于 2012-05-28T15:36:12.723 回答
1

我不是性能测试专家,所以我无法判断这实现起来有多么困难,但使用 JUnit 规则应该可以。

它的工作原理类似于 om-nom-nom 提到的 @Test 注释,但您将提供一个规则,例如运行每个测试 100 次以进行预热,而不是运行 100 次并计算 stdev 并在平均时间失败时测试比设置的timeoiut 大2 个标准差。......或者任何规则应该是。

这是一篇关于 JUnit 规则的文章。

基本上相同的方法应该适用于 ScalaTest

于 2012-05-28T18:18:38.837 回答
0

当我问这个问题时, ScalaMeter工具包完全符合我的要求。

于 2014-01-22T20:41:54.607 回答