频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

服务器端测试利器--Cactus简介与实例

来源:JR 作者:srx81 出处:巧巧读书 2005-10-31 进入讨论组
下一页 1 2 3 

  Cactus是一套简单,易于使用的服务器端测试框架,可以使开发人员很轻松的测试服务器端的程序。

  Cactus是Junit的一个扩展,但是它又和Junit有一些不同。Cactus的测试分为三种不同的测试类别,JspTestCase,ServletTestCase,FilterTestCase,而不是像Junit就一种TestCase。

  Cactus的测试代码有服务器端和客户端两个部分,他们协同工作。在测试服务器端的应用时,Cactus和Junit相比有什么优势呢?

  一般EJB或者servlet,jsp都是运行在服务器上,如果你使用junit测试的话,你的测试是在客户端,这使的运行环境和测试环境处于不同的系统环境中,这个有时候会不同的测试结果。

  EJB2.0中的Local interface ,不允许远程调用。用Junit不好测试,而Cactus的redirector位于服务器端,可以和EJB运行在一个容器中,这使得它可以直接访问Local Interface。

  在一个EJB的应用中,一般都会有一些前端应用来访问EJB,例如:jsp,servlet,javabean。这就意味着你需要一个测试框架来测试这些前端的组件。Cactus提供了所有这些组件的测试方法。

  Cactus和ant很好的结合在一起,可以很容易的完成自动化测试,减少了很多工作量。

一、工作原理

  1、JUnit Test Runner调用YYYTestCase.runTest(),这个方法寻找beginXXX(ServletTestRequest )

  2、YYYTestCase.runTest()打开一个到Redirector Proxy的HTTP连接

  3、Redirector Proxy进行如下操作

 创建Test class的实例

  创建一些Server对象(HttpServletRequest、ServletConfig、ServletContext)的Cactus wrapper如果需要,创建一个HTTP Session

  4、Redirector

  Proxy通过Reflection,执行Test类的setUP()、testXXX()、tearDown()

  5、testXXX()调用Server side classes的方法,并通过JUnit的assert API来验证测试结果

  6、如果测试失败,testXXX()方法抛出例外,Redirector Proxy会捕获例外

  7、Redirector Proxy向客户端返回例外的有关信息,JUnit会将这些信息打印出来

  8、如果没有发生例外,YYYTestCase.runTest()寻找并执行endXXX(HttpURLConnection),在这儿你可以使用JUnit asserts检查返回的HTTP Header、servlet output stream

 Servlet Redirector Proxy

  客户端打开2个HTTP连接,一个用于执行测试并取回Servlet输出流;另一个取回测试结果。测试结果被存储在一个变量中,并被放置到ServletContext供第二个连接取回。

 JSP Redirector Proxy

  客户端打开2个连接,一个用于连接JSP Redirector执行test,取回JSP输出流;第二个连接Servlet Redirector取回test结果。测试结果同样被存储在一个变量中,并被放置到ServletContext供第二个连接取回。

文字:http://www.qqread.com/app-soft/b170820111.html 更多文章 更多内容请看FTP服务器双核服务器技术网站服务器的选型专题,或进入讨论组讨论。

下一页 1 2 3 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章