• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

追求代码质量: 可重复的系统测试

发布: 2009-6-22 10:41 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 43次 | 进入软件测试论坛讨论

领测软件测试网

对于新手,显然要先了解容器 的概念。容器是用以寄存应用程序的服务器。应用程序可以是基于 Web 的,基于 EJB 的,或基于这两者的,这就是为什么有 Web 容器和 EJB 容器的原因。Tomcat 是 Web 容器,而 JBoss 则会被认为是 EJB 容器。因此,Cargo 支持相当多的容器,但在我的例子中,我将使用 Tomcat 5.0.28 版。(Cargo 将称其为“tomcat5x”容器。)

    接下来,如果尚未安装容器,可以使用 Cargo 来下载并安装一个特定的容器。为此,需要提供给 Cargo 一个下载 URL。一旦安装了容器,Cargo 也会允许使用配置选项 来对其进行配置。这些选项以名称-值对的形式存在。

    最后,要介绍可部署资源 的概念,在我的例子中即 WAR 文件。请注意 EAR 文件也是一样的简单。

    将这些概念记住,让我们来看一下可以用 Cargo 来完成什么任务。


Cargo 实践

    本文中的例子涉及到在 Ant 中使用 Cargo,这就必需将之前定义的系统测试和 Cargo Ant 任务包装在一起。这些任务随后安装、启动、部署并停止容器。我们将首先进行安装设置,运行测试然后停止容器。

    在 Ant 构建中使用 Cargo 所需的第一步是提供一个针对所有的 Cargo 任务的任务定义。这一步允许随后在构建文件中引用 Cargo 任务。应付这一步有很多的方法。清单 3 简单地装载了来自 Cargo JAR 文件中的属性文件的任务:


清单 3. 在 Ant 中装载所有的 Cargo 任务

<taskdef resource="cargo.tasks">
<classpath>
  <pathelement location="${libdir}/${cargo-jar}"/>
  <pathelement location="${libdir}/${cargo-ant-jar}"/>
</classpath>
</taskdef>       



一但定义了 Cargo 的任务,真正的行动就开始了。清单 4 定义了下载、安装及启动 Tomcat 容器的 Cargo 任务。zipurlinstaller 任务将 Tomcat 从http://www.apache.org/dist/tomcat/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28.zip 中下载并安装到一个本地临时目录中。


清单 4. 下载并启动 Tomcat 5.0.28

<cargo containerId="tomcat5x" action="start"
       wait="false" id="${tomcat-refid}">
          
<zipurlinstaller installurl="${tomcat-installer-url}"/>

<configuration type="standalone" home="${tomcatdir}">
  <property name="cargo.remote.username" value="admin"/>
  <property name="cargo.remote.password" value=""/>

  <deployable type="war" file="${wardir}/${warfile}"/>

</configuration>               

</cargo>



    请注意要想如您所愿,从不同的任务中启动和停止一个容器,必需将容器同一个惟一的 id 联系起来,此 id 是 cargo 任务的 id="${tomcat-refid}"。

    还要注意的是,Tomcat 的配置是在 cargo 任务内处理的。在 Tomcat 中,必需设置 username 和 password 属性。最后,使用 deployable 元素定义一个指向 WAR 文件的指针。

    Cargo 属性

    Cargo 任务中用到的所有属性都显示在清单 5 中。例如,tomcatdir 定义 Tomcat 将安装的两个位置中的一个。这个特别的位置是一个镜像结构,该位置将被实际下载并安装的 Tomcat 实例(在临时目录中找到的)所引用。tomcat-refid 属性则帮助将容器中惟一的实例与其镜像关联起来。


清单 5. Cargo 属性

<property name="tomcat-installer-url"
  value="http://www.apache.org/dist/tomcat/tomcat-5/v5.0.28/bin/
    jakarta-tomcat-5.0.28.zip"/>
<property name="tomcatdir" value="target/tomcat"/>       
<property name="tomcat.username" value="admin"/>       
<property name="tomcat.passwrd" value=""/>       
<property name="wardir" value="target/war"/>
<property name="warfile" value="words.war"/>       
<property name="tomcat-refid" value="tmptmct01"/>       


    为停止一个容器,可以定义一个引用 tomcat-refid 属性的任务,如清单 6 所示。

    清单 6. 按 Cargo 方式停止容器

<cargo containerId="tomcat5x" action="stop"
       refid="${tomcat-refid}"/>       

    用 Cargo 封装

    清单 7 将 清单 4 和清单 6 中的代码联合起来,用两个 Cargo 任务封装了一个测试目标:一个用于启动 Tomcat,另一个用于停止 Tomcat。antcall 任务调用在清单 8 中定义的名为 _run-system-tests 的目标。

    清单 7. 用 Cargo 封装测试目标

<target name="system-test" if="Junit.present"
        depends="init,junit-present,compile-tests,war">

<cargo containerId="tomcat5x" action="start"
       wait="false" id="${tomcat-refid}">                       
  <zipurlinstaller installurl="${tomcat-installer-url}"/>
  <configuration type="standalone" home="${tomcatdir}">
   <property name="cargo.remote.username" value="admin"/>
   <property name="cargo.remote.password" value=""/>
   <deployable type="war" file="${wardir}/${warfile}"/>
  </configuration>

文章来源于领测软件测试网 https://www.ltesting.net/

43/4<1234>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网