单元性能测试之使用JUnitPerf测试多线程并发

发表于:2013-1-14 10:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:lobster    来源:51Testing软件测试博客

  简介:

  单元测试性能测试在测试领域属于要求相对较高的测试活动,也是测试工程师成长、向上发展的反向。单元测试评测我们的代码实现功能的情况,性能测试则企图分析应用程序的性能表现和负载能力。那么“单元性能测试”能做什么?我们可以这样说,单元性能测试以单元测试的形式对代码进行性能测试。单元性能测试像单元测试一样,需要测试人员编写测试代码,但现在关注的不是代码的功能实现情况了,而是想得到被测试代码的性能数据,包括执行方法耗时、多线程并发是否线程安全、内存是否泄漏、是否存在短期循环对象等。单元性能测试相对于系统性能测试更容易定位问题,对关键的方法进行测试,可以降低系统性能风险,减少系统集成后系统性能测试的工作量。本篇文档演示如何使用JUnitPerf程序包对代码进行多线程并发测试。

  待测代码DateUtil:

  我们待测的程序代码为com.loggingselenium.DateUtil类。这个类中有一个私有静态成员timeFormator和一个静态方法compareDateTime(String dateTime1, String dateTime2)。

package com.loggingselenium;
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateUtil {
 private  static SimpleDateFormat timeFormator =
  new SimpleDateFormat("yyyyMMdd HH:mm:ss");
 public synchronized static int compareDateTime(String dateTime1, String dateTime2) {
  try {
   Date date1 = timeFormator.parse(dateTime1);
   Date date2 = timeFormator.parse(dateTime2);
   if (date1.before(date2))
    return -1;
   if (date1.after(date2))
    return 1;
   else
    return 0;
  } catch (Exception e) {
   throw new RuntimeException("解析日期时间格式出错,期望的字符串格式为[yyyyMMdd HH:mm:ss]");
  }
 }
}

  单元测试代码UnitTestDateUtil:

  我们的测试代码com.loggingselenium.UnitTestDateUtil如下:

package com.loggingselenium;
import junit.framework.TestCase;
public class UnitTestDateUtil extends TestCase {
 protected void setUp() throws Exception {
  super.setUp();
 }
 protected void tearDown() throws Exception {
   super.tearDown();
 }
 public  void testCompareDateTime(){  
  String dateTime1="20120111 01:02:03";
  String dateTime2="20130111 01:02:03";
  String dateTime3="20130111 01:02:03";  
  assertEquals(-1, DateUtil.compareDateTime(dateTime1, dateTime2));
  assertEquals(1,  DateUtil.compareDateTime(dateTime2, dateTime1));
  assertEquals(0,  DateUtil.compareDateTime(dateTime2, dateTime3));
 }
}

  经过运行单元测试代码,可以验证com.loggingselenium.DateUtil类的compareDateTime(String dateTime1, String dateTime2)的功能已经实现了,可以用来比较两个日期时间的大小了。

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号