<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的漫漫程序之旅

    專注于JavaWeb開發(fā)
    隨筆 - 39, 文章 - 310, 評(píng)論 - 411, 引用 - 0
    數(shù)據(jù)加載中……

    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"));
        }

    }



    部署之后,啟動(dòng)Tomcat,訪問:

    http://localhost:8080/test/ServletTestRunner?suite=TestSampleServlet
    這時(shí)候你會(huì)看到輸出?。?br />

    <?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í)候你可以訪問如下地址:
    http://localhost:8080/test/ServletTestRunner?suite=TestSampleServlet&xsl=cactus-report.xsl

    這時(shí)候你就會(huì)看到友好的Html格式了:
    HTML output of ServletTestRunner


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

    評(píng)論

    # re: Cactus容器測(cè)試入門  回復(fù)  更多評(píng)論   

    Hello....

    Thanks a lot.... it helped me to run my first cactus program
    2012-11-12 19:01 | Cyril
    主站蜘蛛池模板: 国产AV无码专区亚洲AV蜜芽| 亚洲国产精品一区二区九九 | 免费在线黄色电影| 亚洲乱人伦精品图片| 亚洲乳大丰满中文字幕| 免费一级国产生活片| 麻豆最新国产剧情AV原创免费| 在线免费观看h片| 色婷婷综合缴情综免费观看| 亚洲欧美第一成人网站7777| 亚洲精品视频免费看| 亚洲成色999久久网站| 亚洲国产成人久久一区WWW| 国产一区二区三区免费在线观看| 国产精品色拉拉免费看| 免费不卡在线观看AV| 免费看搞黄视频网站| 精品无码国产污污污免费网站国产| 美国免费高清一级毛片| 亚洲av纯肉无码精品动漫| 亚洲色偷偷综合亚洲AV伊人蜜桃| 亚洲最大的黄色网| 亚洲一级毛片中文字幕| 亚洲黄片手机免费观看| 最新亚洲人成无码网站| 美国毛片亚洲社区在线观看| 亚洲日韩精品国产3区| 国产精品久久亚洲不卡动漫| 亚洲精品伊人久久久久| 亚洲午夜久久久精品电影院| 亚洲国产高清视频在线观看| 亚洲乱码中文论理电影| 中文日韩亚洲欧美制服| 色九月亚洲综合网| 羞羞视频免费观看| 一区二区免费电影| 成人无码a级毛片免费| 免费国产黄网站在线观看可以下载| 1000部国产成人免费视频| 日本高清在线免费| 毛片A级毛片免费播放|