-
JunitPerfer 这个测试工具不支持 @before @after 配置 也有点繁琐 弃用,参考测试步骤: http://www.blogjava.net/emu/articles/4358.html
-
ContiPerf 这个测试工具 支持注解,配置简单 还有生成测试结果页面 看起来直观,就用这个工具来测试我的项目吧,参考测试步骤:http://testing.etao.com/node/626

下面是我自己的步骤:
-
引入jar包
123456789101112<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.10</version><scope>test</scope></dependency><dependency><groupId>org.databene</groupId><artifactId>contiperf</artifactId><version>2.2.0</version><scope>test</scope></dependency>maven构建的项目最方便了,希望你的项目也是maven构建的,如果不是或者想用最新的版本:http://sourceforge.net/projects/contiperf/files/
-
建Test_suite类
1234567891011121314151617181920212223importorg.databene.*;importorg.junit.*;@RunWith(ContiPerfSuiteRunner.class)@Suite.SuiteClasses({UtilTest.class})@PerfTest(invocations =5, threads =1, rampUp =1000)publicclassPerformanceTest{@RulepublicContiPerfRule i =newContiPerfRule();// Invocations:方法的执行次数,例:@PerfTest(invocations = 300)重复执行300次;// Threads:同时执行的线程数,例:@PerfTest(invocations = 30, threads = 2)两个线程并发执行,每个线程执行15次,总共执行30次;// Duration:在指定时间范围内一直执行测试,例:@PerfTest(duration = 300)在300毫秒内反复执行。// 三个属性可以组合使用,其中Threads必须和其他两个属性组合才能生效。当Invocations和Duration都有指定时,以执行次数多的为准。// 例,@PerfTest(invocations = 300, threads = 2, duration = 100),如果执行方法300次的时候执行时间还没到100ms,// 则继续执行到满足执行时间等于100ms,如果执行到50次的时候已经100ms了,则会继续执行之100次。// 如果你不想让测试连续不间断的跑完,可以通过注释设置等待时间,// 例,@PerfTest(invocations = 1000, threads = 10, timer = RandomTimer.class, timerParams = { 30, 80 }) ,每执行完一次会等待30~80ms然后才会执行下一次调用。// 在开多线程进行并发压测的时候,如果一下子达到最大进程数有些系统可能会受不了,ContiPerf还提供了“预热”功能,// 例,@PerfTest(threads = 10, duration = 60000, rampUp = 1000) ,启动时会先起一个线程,然后每个1000ms起一线程,到9000ms时10个线程同时执行,那么这个测试实际执行了69s,// 如果只想衡量全力压测的结果,那么可以在注释中加入warmUp,即@PerfTest(threads = 10, duration = 60000, rampUp = 1000, warmUp = 9000) ,// 那么统计结果的时候会去掉预热的9s。}注释都在里面了 我就不多说啦,其中 @Suite.Suiteclasses({utilTest.class}) 就是你原有的junit测试类,基本不需要做任何改动,当然如果你定义了成员变量,建议你最好放线程里,因为我们做的是并发嘛
至于具体方式请参考http://www.blogjava.net/emu/articles/4358.html