CSDN博客

img roshui

Jameleon -测试用例(Test Cases)-   zt

发表于2004/7/7 10:26:00  1514人阅读

Jameleon -测试用例(Test Cases)-  - 展开/隐藏 - 编辑
  
 
作者/翻译:Slovenboy
转载/出版:联系作者
 
链接:Bonoy QA - http://www.bonoy.com
链接:Slovenboy's Blog - http://slovenboy.blogdriver.com
 
本文状态:写作中,到Bonoy QA的Jameleon论坛查看最新进展
 
 
 
Jameleon -测试用例(Test Cases)
 
简介
 
在Jameleon中编写测试只需要写功能标签(FunctionTag),让它继承一个
一个合适插件提供的功能标签。不需要编写会话标签(SessionTag)和测试用
例标签(TestCaseTag)。如果计划使用HttpUnit插件写功能点(Function Point)
那么所有的功能点必须继承HttpUnitFunctionTag。
 
宏语言
 
Jameleon使用Jelly作为宏引擎。宏语言是XML,以一种简单的,语言无关的方
法描述对象。要使用Jameleon,需要对XML有基本的了解。
 
Jameleon的三个主要部分
 
1。测试用例标签(TestCaseTag)
2。会话标签(SessionTag)
3。功能标签(FunctionTag)
 
 
测试用例标签(TestCaseTag)
 
在上面列出的三个类,只有TestCaseTag不是抽象类。TestCaseTag应该足够
通用,可以同任何类型的应用一起工作。Jameleon的三个主要部分之间是父子
关系,TestCaseTag是祖父。查看TestCaseTag的javadoc注释,了解更多内容。
目前,TestCaseTag在宏语言中表示为<test-case>。<test-case>下面列出的
属性。接下来提到的Environment.properties文件是一个键=值(key=value)
文件,必须放在类路径(classpath)中才能被使用。在这个文件中的值,如果
test-case标签支持,那么将覆盖test-case标签中的值。
 
 
会话标签(SessionTag)
 
 
会话标签(SessionTag)应用中的动作(action)。一个测试用例标签(TestCaseTag)可以
包含多个会话标签。由于会话标签位置的应用的状态依赖于应用的类型(如Web应用,GUI应用,
控制台应用等),因而会话标签是抽象类。一个Web应用通过Cookie或者URL重写维持应用的状
态。这需要某种接口与浏览起交互。然而,一个GUI应用的状态或会话是通过应用自己维持的,这
需要一个不同的接口去直接连接应用的功能。
会话标签有三个扩展。一个是JWebUnit插件,在宏语言中表示为<http-session>元素。另一个
是HttpUnit插件,表示为<httpunit-session>。HttpUnit插件输出更好的错误信息并带有
调试功能。还有一个就是JUnit插件,表示为<junit-session>元素。
所有的会话标签有同样的基本属性:
 
 
功能标签(FunctionTag)
 
 
功能标签是在一个会话过程中应用的一个动作(Action)。正如一个测试用例标签中可以有
多个会话标签一样,在一个会话标签中也可以有多个功能标签。目前功能标签有三种实现。
HttpFunctionTag是jWebUnit插件的实现。HttpUnitFunctionTag是HttpUnit插件的实现。
JUnitFunctionTag是JUnit插件的实现。
然而,插件只是对原有API的一个简单扩展,需要通过插件的javadoc更多的学习插件的API。
对于HttpUnitFunction,已经实现了几个方法,只是简单的调用HttpUnit API。这使得编写
功能点变得容易,但是为了更好的使用HttpUnit插件,最好还是学习HttpUnit。对于JWebUnit
插件也是一样的,除了在WebTest类中的同样的方法在HttpFunctionTag中包装。换句话说,在
jWebUnit中的WebTester类的所有可用方法,在HttpFunctionTag中也是可用的。JUnit插件
的信息可以在JUnitFunctionTag的javadoc文档中获得。
 
Jameleon的Ant任务

= 什么是Ant?=

Ant是一个用Java编写的构建工具。

= Jameleon Ant任务 =

Jameleon提供三个Ant任务:

== XJavaDoc任务 ==

XJavaDoc任务自动注册定制的功能点到Jameleon的宏引擎(Jelly)。
只要添加合适的javadoc标签,Jameleon能够自动生成TestCaseTagDefs.properties
文件并且防止在任何一个目录中。为了使用这个任务,在build.xml文件中
添加下面的几行。

代码:
<taskdef name="jmln-register" classname="net.sf.jameleon.ant.JameleonXDoclet"
classpathref="classpath"/>


jameleon.jar必须在上面定义的类路径中。JameleonXDoclet任务有如下属性:

属性:outputdir

描述:
保存文件的目录。
必须:是

------------------------------
属性:outputfilename

描述:
要保存的文件的名称。
必须:否-缺省是TestCaseTagDefs

------------------------------
属性:quiet

描述:
对没有合适标签的文件不输出警告。
必须:否-缺省是false

------------------------------
属性:isA

描述:
注册时包含的类型。换句话说,所有继承或实现isA的值的类
都会被注册。
必须:否-缺省是net.sf.jameleon.function.FunctionTag

------------------------------

== 测试用例执行任务 ==

有两个Ant任务可以用于执行测试用例。他们基本是相同的,除了
ExecuteTestCaseTask在同一个虚拟机中执行测试用例而
ExecuteTestCaseSeparateVMTask在单独的虚拟机中执行每一
个测试用例。任务用于执行满足一定模式的测试用例。如果任何一
个测试用例失败,build失败,显示失败的文件列表,行号和简短
的描述。使用这个Ant任务,首先需要定义任务:

代码:
<taskdef name="jmln-test" classname="net.sf.jameleon.ant.
ExecuteTestCaseTask" classpathref="classpath"/>


jameleon.jar必须放在类路径中。ExecuteTestCaseTask任务没有属性。
但它支持Ant文件集(fileset)数据类型。文件集数据类型允许按照文件名
称和/或目录结构执行测试用例。选择器选项(selector option)用于扫描
带有某些文字的文件。

这可以用于执行所有的包含某关键词或者某个功能点的测试用例。由于宏引擎的
特性,不知道的标签将被忽略。也就是说,可以输入一些特定的内容,比如
<type>SMOKE</type>在测试用例中,将此用例分类为SMOKE类型,那么可以
设置一个选择器执行所有包含SMOKE单词的测试用例。

这样使用的例子可能想下面这样:

代码:
<taskdef name="jmln-test" classname="net.sf.jameleon.ant.
ExecuteTestCaseTask" classpathref="classpath"/>

<jmln-test debug="true">
    <fileset dir="tst/xml">
        <exclude name="testAll.xml"/>
        <exclude name="**/*.fragment"/>
<contains text="SMOKE" casesensitive="no"/>

    </fileset>
</jmln-test>


这将执行所有在目录tst/xml中并包含SMOKE单词的测试用例,不包括
以.fragment作为尾名的和testAll.xml文件。debug选项打印堆栈跟踪到
标准输出。当你不能确定发生了什么或者由于某种原因测试用例不执行的
时候,这个选项是很管用的。

ExecuteTestCaseSeparateVMTask有一个叫做classpathref的属性或者
classpath的Ant标签用于为每个被执行的虚拟机设置类路径(classpath)。
0 0

相关博文

我的热门文章

img
取 消
img