JUnitPer的负载测试

  在任何项目的计划编制阶段,你必须给出项目完成后的系统性能标准。通过使用JUnitPer对已存在的JUnit测试用例进行装饰,你便能够确定目前系统达到了性能标准。

  JUnitPer中有两个主要的测试类型:定时测试和负载测试,分别定义在TimedTest类和LoadTest类中,后面将会用到他们。

  二、实践中的应用

  使用JUnit进行单元测试

  如论述中所说,用户的测试类必须继承自TestCase或者TestSuite类,其中TestCase用于单个测试,TestSuite用于多个测试(类似于Vector结构)

  在Eclipse中使用JUnit测试

  所使用文件来自于JUnit测试用例。下面是摘要:

package junit.samples;
import junit.framework.*;
/**
 * TestSuite that runs all the sample tests
 *
 */
public class AllTests {
       public static void main (String[] args) {
              junit.textui.TestRunner.run (suite());
       }
       public static Test suite ( ) {
              TestSuite suite= new TestSuite("All JUnit Tests");
              suite.addTest(VectorTest.suite());
              suite.addTest(new TestSuite(junit.samples.money.MoneyTest.class));
              suite.addTest(junit.tests.AllTests.suite());
           return suite;
       }
}


  使用Cactus进行容器服务测试

  用户需要继承ServletTestCase,对被测试类进行测试。如下所示:

  被测试类 SampleServlet.java

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
public class SampleServlet extends HttpServlet
{
     public void saveToSession(HttpServletRequest request)
    {
         String testparam = request.getParameter("testparam");
         request.getSession().setAttribute("testAttribute", testparam);
     }


  测试类 TestSampleServlet.java

import junit.framework.Test;
import junit.framework.TestSuite;
import org.apache.cactus.ServletTestCase;
import org.apache.cactus.WebRequest;
 
public class TestSampleServlet extends ServletTestCase
{
    public TestSampleServlet(String theName)
    {
        super(theName);
    }
 
    public static Test suite()
    {
        return new TestSuite(TestSampleServlet.class);
    }
 
    public void beginSaveToSessionOK(WebRequest webRequest)
    {
        webRequest.addParameter("testparam", "it works!");
    }
 
    public void testSaveToSessionOK()
    {
        SampleServlet servlet = new SampleServlet();
 
        servlet.saveToSession(request);
 
        assertEquals("it works!", session.getAttribute("testAttribute"));
 
    }
 
}