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