Cactus容器測(cè)試入門
此文參考: http://jakarta.apache.org/cactus/integration/howto_tomcat.html
我們?cè)趙eb.xml中的webapp之間加入:
<servlet>
<servlet-name>ServletRedirector</servlet-name>
<servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>
<init-param>
<param-name>param1</param-name>
<param-value>value1 used for testing</param-value>
</init-param>
</servlet>

<servlet>
<servlet-name>ServletTestRunner</servlet-name>
<servlet-class>org.apache.cactus.server.runner.ServletTestRunner</servlet-class>
</servlet>
加入mapping:
<servlet-mapping>
<servlet-name>ServletRedirector</servlet-name>
<url-pattern>/ServletRedirector</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>ServletTestRunner</servlet-name>
<url-pattern>/ServletTestRunner</url-pattern>
</servlet-mapping>
然后我們寫一個(gè)簡(jiǎn)單的Servlet來進(jìn)行測(cè)試:
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);
}
}
對(duì)于此Servlet在xml的配置我就不寫了.想必你也了然于心了吧.
來看看我們的測(cè)試類:
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"));
}
}
<?xml version="1.0" encoding="UTF-8" ?>
- <testsuites>
- <testsuite name="com.test.servlet.TestServletTest" tests="1" failures="0" errors="1" time="0.516">
- <testcase name="testSaveSessionToOK" time="0.36">
<error message="org/apache/commons/codec/DecoderException" type="java.lang.NoClassDefFoundError">java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException at org.apache.commons.httpclient.HttpMethodBase.getURI(HttpMethodBase.java:265) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:383) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346) at org.apache.cactus.internal.client.connector.http.HttpClientConnectionHelper.connect_aroundBody0(HttpClientConnectionHelper.java:144) at org.apache.cactus.internal.client.connector.http.HttpClientConnectionHelper.connect_aroundBody1$advice(HttpClientConnectionHelper.java:307) at org.apache.cactus.internal.client.connector.http.HttpClientConnectionHelper.connect(HttpClientConnectionHelper.java:1) at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.callRunTest(DefaultHttpClient.java:163) at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest_aroundBody0(DefaultHttpClient.java:81) at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest_aroundBody1$advice(DefaultHttpClient.java:307) at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest(DefaultHttpClient.java:1) at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runWebTest(HttpProtocolHandler.java:164) at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest_aroundBody0(HttpProtocolHandler.java:83) at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest_aroundBody1$advice(HttpProtocolHandler.java:307) at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest(HttpProtocolHandler.java:1) at org.apache.cactus.internal.client.ClientTestCaseCaller.runTest(ClientTestCaseCaller.java:145) at org.apache.cactus.internal.AbstractCactusTestCase.runBareClient(AbstractCactusTestCase.java:218) at org.apache.cactus.internal.AbstractCactusTestCase.runBare(AbstractCactusTestCase.java:134) at org.apache.cactus.server.runner.ServletTestRunner.run(ServletTestRunner.java:309) at org.apache.cactus.server.runner.ServletTestRunner.doGet_aroundBody0(ServletTestRunner.java:187) at org.apache.cactus.server.runner.ServletTestRunner.doGet_aroundBody1$advice(ServletTestRunner.java:225) at org.apache.cactus.server.runner.ServletTestRunner.doGet(ServletTestRunner.java:1) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source)</error>
</testcase>
</testsuite>
</testsuites>
看來程序沒有大問題,已經(jīng)正確執(zhí)行.不過這時(shí)提示有一個(gè)類找不到.
對(duì)于這個(gè)問題我們可以去http://commons.apache.org/downloads/download_codec.cgi下載.
這個(gè)xml看起來多少不習(xí)慣.我們可以下載xsl把它轉(zhuǎn)換成html格式.
點(diǎn)此下載 把它放到你web應(yīng)用的根目錄下.
這個(gè)時(shí)候你可以訪問如下地址:
這時(shí)候你就會(huì)看到友好的Html格式了:

我們?cè)趙eb.xml中的webapp之間加入:
























然后我們寫一個(gè)簡(jiǎn)單的Servlet來進(jìn)行測(cè)試:












對(duì)于此Servlet在xml的配置我就不寫了.想必你也了然于心了吧.
來看看我們的測(cè)試類:































部署之后,啟動(dòng)Tomcat,訪問:
http://localhost:8080/test/ServletTestRunner?suite=TestSampleServlet
這時(shí)候你會(huì)看到輸出 :








看來程序沒有大問題,已經(jīng)正確執(zhí)行.不過這時(shí)提示有一個(gè)類找不到.
對(duì)于這個(gè)問題我們可以去http://commons.apache.org/downloads/download_codec.cgi下載.
這個(gè)xml看起來多少不習(xí)慣.我們可以下載xsl把它轉(zhuǎn)換成html格式.
點(diǎn)此下載 把它放到你web應(yīng)用的根目錄下.
這個(gè)時(shí)候你可以訪問如下地址:
http://localhost:8080/test/ServletTestRunner?suite=TestSampleServlet&xsl=cactus-report.xsl
這時(shí)候你就會(huì)看到友好的Html格式了:

posted on 2008-06-01 01:11 々上善若水々 閱讀(3268) 評(píng)論(1) 編輯 收藏 所屬分類: 軟件測(cè)試