WEB开发网      濠靛倻鏅悵顖涚附閽樺鐎诲ù婊庡亾缁辨帗鎷呴悩鍨暠濞戞挴鍋撳ù鐘烘閸ㄥ孩绂嶉锝喰﹂柟瀛樺灣濠婃垿鎯冮崟顏嗩伇濞寸姾妫勬慨鈺呭礉濞戝磭骞㈤悹鍥у槻閸ㄥ孩绂嶉敓锟� ---闁挎洩鎷�
开发学院软件开发Java 追求代码质量: 用 JUnitPerf 进行性能测试 阅读

追求代码质量: 用 JUnitPerf 进行性能测试

 2009-11-19 00:00:00 来源:WEB开发网 闁靛棴鎷�闁告垵绻愰惃顒傗偓娑欍仦缂嶏拷濠⒀呭仜閵囧洨鈧稒銇炵紞锟�闁靛棴鎷�  闁稿繗娅曢弫鐐次涘▎鎰泚闁告娲ㄥ▓鎴濐嚗椤旂厧瑙�
核心提示: 清单 3 是用 ConstantTimer 实现的含 10 个模拟用户的负载测试:清单 3. 为生成负载测试而实现的 suite 方法publicstaticTestsuite(){intusers=10;Timertimer=newConstantTimer(100);returnnewLoa

清单 3 是用 ConstantTimer 实现的含 10 个模拟用户的负载测试:


清单 3. 为生成负载测试而实现的 suite 方法
public static Test suite() { 
 int users = 10; 
 Timer timer = new ConstantTimer(100);  
 return new LoadTest( 
 new WidgetDAOImplTest("testCreate"), 
  users, timer);  
} 

请注意,testCreate() 方法运行 10 次,每个线程间隔 100 毫秒启动。未设定时间限制 —— 这些方法完整运行,如果其中任何的方法执行失败,JUnit 会相应地报告失败。

用样式进行装饰

装饰器并不局限于单个的装饰物。例如,在 Java™ I/O 中,可以为 FileInputStream 装饰上一个带 BufferedReader 的 InputStreamReader(只要记住:BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("infilename"), "UTF8")))。

装饰可以有多个层次,JUnitPerf 的 TimedTest 和 LoadTest 也是一样。当这两个类彼此装饰时,将导致一些强制的测试场景,例如像这样的场景:在一项业务中放置了负载并应用了时间限制。或者,我们可以仅仅将之前的两个测试场景以如下方式结合起来:

在 testCreate() 方法中放置一项负载。

规定每个线程必须在该时间限制内结束。

我通过为一个标准 Test 装饰上 LoadTest(由 TimedTest 装饰)应用了上述规范,清单 4 显示了其结果。


清单 4. 经装饰的负载和时限测试
public static Test suite() { 
 int users = 10; 
 Timer timer = new ConstantTimer(100); 
 long maxElapsedTime = 2000;  
 return new TimedTest(new LoadTest( 
  new WidgetDAOImplTest("testCreate"), users, timer), 
   maxElapsedTime);   
} 

上一页  1 2 3 4 5  下一页

Tags:追求 代码 质量

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接