项目地址:Simperf
Simperf 是一个简单的性能测试工具,它提供了一个多线程测试框架
Example:
1. 在代码里使用Simperf
[code lang="java"]
Simperf perf = new Simperf(50, 2000, 1000,
new SimperfThreadFactory() {
public SimperfThread newThread() {
return new SimperfThread();
}
});
// 设置结果输出文件,默认 simperf-result.log
perf.getMonitorThread().setLogFile("simperf.log");
// 开始性能测试
perf.start();
[/code]
2. 在命令行里使用Simperf
[code lang="java"]
public class SimperfCommandTest {
public static void main(String[] args) {
SimperfCommand simCommand = new SimperfCommand(args);
Simperf perf = simCommand.create();
if (perf == null) {
// 参数解析失败时会返回null
System.exit(-1);
}
perf.start(new SimperfThreadFactory() {
public SimperfThread newThread() {
return new SimperfThread();
}
});
}
}
[/code]
执行命令:
[code lang="shell"]
java SimperfCommandTest -t 10 -c 10 -i 1000
参数说明:
usage: SimperfCommand options
-c,--count [*] number of each thread requests count
-i,--interval [ ] interval of print messages, default 1000
-j [ ] generate jtl report
-l,--log [ ] log filename
-m,--maxtps [ ] max tps
-t,--thread [*] number of thread count
[/code]
3. 在Junit4里使用Simperf
[code lang="java"]
public class SimperfTestCaseTest extends SimperfTestCase {
private Random rand;
@Test
@Simperf(thread = 2, count = 5, interval = 1000)
public void testXxx() {
try {
Thread.sleep(1000);
} catch (Exception e) {
}
boolean result = rand.nextInt(10) > 1;
Assert.assertTrue("随机生成结果", result);
}
}
[/code]