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

转载 2004年07月07日 10:26:00
Jameleon -测试用例(Test Cases)-  - 展开/隐藏 - 编辑
  
top_logo_100.jpg
 
作者/翻译: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)。

《我的RobotFramework书》1-2 测试用例, Test Case

测试用例, Test Case 作者: 虞科敏 基础语法 测试用例在test case table中创建,使用各种合法可用的关键字。 关键字的来源: 从test libraries或者reso...
  • chengdupanda
  • chengdupanda
  • 2016年08月22日 13:09
  • 2413

maven失败测试用例rerun插件使用方法

​在运行测试用例时,有时候希望本次运行结束后自动运行失败的测试用例,以排除结果由于网络或其他连接原因导致的偶发抖动。通过参考查阅资料,有以下几种方法可以达到目的: 一、maven surefir...
  • tongtong0704
  • tongtong0704
  • 2015年06月10日 21:36
  • 519

Google code jam - World Finals 2017-Problem A. Dice Straight

Google code jam - World Finals 2017-Problem A. Dice Straight Problem You have a special set of N...
  • rock4you
  • rock4you
  • 2017年09月22日 18:39
  • 171

测试用例的评审检查单(Checklist for Test cases)

http://bbs.51testing.com/viewthread.php?tid=110793测试用例的评审检查单(Checklist for Test cases):  1)Has the c...
  • bingjingfan
  • bingjingfan
  • 2011年04月01日 12:29
  • 647

uva 10626 - Buying Coke(记忆化搜索)

Problem D Buying Coke  Input: Standard Input Output: Standard Output Time Limit: 2 Seconds I of...
  • Wiking__acm
  • Wiking__acm
  • 2014年07月27日 17:34
  • 798

Leetcode 269. Alien Dictionary 已过新test case

269. Alien Dictionary Total Accepted: 13810 Total Submissions: 55329 Difficulty: Hard There is a...
  • fantasiasango
  • fantasiasango
  • 2016年10月03日 06:41
  • 787

TEST_F与TEST

TEST_F与TEST的区别是,TEST_F提供了一个初始化函数(SetUp)和一个清理函数(TearDown),在TEST_F中使用的变量可以在初始化函数SetUp中初始化,在TearDown中销毁...
  • lk07828
  • lk07828
  • 2015年11月12日 16:02
  • 237

UVA 6862 Triples 想法题

题目描述:Mr. A invites you to solve the following problem: “Let be m and n two positive integers, 5 ≤ m...
  • wuxuanyi27
  • wuxuanyi27
  • 2016年10月17日 11:33
  • 134

1896: 树的判定(并查集)

1896: 树的判定 时间限制: 1 Sec  内存限制: 64 MB 提交: 3  解决: 3 [提交][状态][讨论版][Edit] [TestData] 题目描述 A ...
  • l2533636371
  • l2533636371
  • 2017年08月09日 10:46
  • 65

How to write good test cases using Robot Framework

How to write good test cases using Robot Framework 如何用RF来编制好的测试用例 Table of contents: 目录: Introduc...
  • Snailandfish
  • Snailandfish
  • 2017年03月14日 16:04
  • 260
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Jameleon -测试用例(Test Cases)-   zt
举报原因:
原因补充:

(最多只允许输入30个字)