Jameleon -測試用例(Test Cases)-   zt

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)。
發佈了27 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章