51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5131|回复: 2
打印 上一主题 下一主题

利用cactus测试servlet的简单入门 -转贴

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-1-12 23:26:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为了使得项目的开发正规化,准备在3u的这个项目中使用专门的测试工具,经过多方面的比较,最后选择cactus,使用工具eclipse3.1.1+cactus+junit

  1.解压cactus安装文件到某一目录下

  2.将lib下的jar拷贝到项目\web-inf\lib 下

  3.创建cactus.properties文件,并加入classpath(可选,在这里是为为了可以直接用eclipse的junit进行测试,可用eclipse配置路径)

  4.我需要被测试的类



/*
* 创建日期 2005-12-9
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
package com.test.web;

import java.io.FileNotFoundException;
import java.io.IOException;

import javax.servlet.RequestDispatcher;
// import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.jdom.JDOMException;

// import com.ca.website.mainpage.MainPageSupport;
// import com.error.ErrorProcesser;
// import com.jem.orm.sql.BsSQLHandler;
// import com.jem.orm.sql.BsSqlXmlPaser;
import com.jem.transdata.BsFormData;
import com.jem.transdata.BsFormTable;

// import com.orm.util.SQLStatementIDS;

public class LoginEdge extends HttpServlet {


     * 测试 by wst
     * @param request
     * @return
     */
    public boolean isValidUser(HttpServletRequest request) {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        if (username == null || password == null || !username.equals("justin")
                || !password.equals("123456")) {
            return false;
        } else {
            return true;
        }
    }
}


6.我的测试类

/*
* 创建者  wst302
*
* 创建日期 2006-1-10
*
* 文档作用:测试登陆
*
* 版本:
*
*/
package com.test;

import org.apache.cactus.ServletTestCase;
import org.apache.cactus.WebRequest;
import com.test.web.LoginEdge;

public class LoginEdgeTest extends ServletTestCase {

    public void beginValidUser(WebRequest webRequest) {
        webRequest.addParameter("username", "justin");
        webRequest.addParameter("password", "123456");
    }

    public void testValidUser() {
        LoginEdge loginServlet = new LoginEdge();
        assertTrue(loginServlet.isValidUser(request));
    }

    public void beginInValidUser(WebRequest webRequest) {
        webRequest.addParameter("username", "guest");
        webRequest.addParameter("password", "guest");
    }

    public void testInValidUser() {
        LoginEdge loginServlet = new LoginEdge();
        assertFalse(loginServlet.isValidUser(request));
    }

}
7.在web.xml需要如下配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<servlet>   
<servlet-name>ServletRedirector</servlet-name>     
<servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>
</servlet>   
<servlet>      
<servlet-name>ServletTestRunner</servlet-name>   
<servlet-class>org.apache.cactus.server.runner.ServletTestRunner</servlet-class>   
</servlet>        

<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>
<!--Test by wst -->
</web-app>
8.在cactus.properties需要如下配置

cactus.contextURL = http://localhost/3UFAssist

cactus.servletRedirectorName = ServletRedirector

cactus.enableLogging=true

9开始测试

输入以下http://localhost/3UFAssist/Servl ... .test.LoginEdgeTest

将出现测试结果:

  <?xml version="1.0" encoding="UTF-8" ?>
- <testsuites>
- <testsuite name="com.test.LoginEdgeTest" tests="2" failures="0" errors="0" time="0.625">
  <testcase name="testValidUser" time="0.5" />
  <testcase name="testInValidUser" time="0.016" />
  </testsuite>
  </testsuites>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-5-30 14:01:03 | 只看该作者
晕, 为啥我按这做不行呢。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-6-11 16:43:42 | 只看该作者
呵呵,,感觉用cactus的话,,还是自己封装一下jetty,,比cactus更好用..
不过jetty不是junit的扩展,,要把juint集成进去,,的确比较困难,前一阵搞过这个集成的东东,,后来太忙了,工作中断了

[ 本帖最后由 JPeanut 于 2006-6-11 16:44 编辑 ]
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-9 04:39 , Processed in 0.066246 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表