人人IT網

人人IT網

當前位置: 主頁 > JAVA編程 > JAVA >

自動化測試整理 --- STAF/STAX & Robot Framework

時間:2012-07-19 00:43來源:Internet 作者:Internet 點擊:
題記:上周花了點時間學習開源的自動化測試框架Robot Framework,結合自己之前的自動化經驗,就想周末寫篇文章整理下。 目前,所在項目的自動化測試框架是基於STAF/STAX的拓展,圍繞STA

題記:上周花了點時間學習開源的自動化測試框架Robot Framework,結合自己之前的自動化經驗,就想周末寫篇文章整理下。

目前,所在項目的自動化測試框架是基於STAF/STAX的拓展,圍繞STAX執行引擎,擴展了測試用例的創建、管理(挑選執行那些測試用例:按照模塊,標簽)、Log、Report功能,由Java來實現的。這是一個關鍵字驅動的測試,測試用例由一個個關鍵字組成記錄每一關鍵字的執行結果。同時,測試用例和測試數據相分離,把測試用例中一些可能變換的數據抽離出來,用宏替代,避免hard-coding,避免因为一些環境因素的變換而導致測試用例的fail,對自動化框架而言,穩定還是蠻重要的。

STAF是一個開源、跨平台、支持多編程語言的框架,以Services 的形式提供一些常用功能,比如跨網络傳出文件、遠程启停一個程序、測試用例的執行引擎服務等。在我們的框架中用到了其中兩個services,一個是 FILE SYSTEM用於在test client 和test server之間傳文件,另一個便是STAX 測試用例執行引擎。

FS 的使用:

#stafcore is a STAFHandle instance;
String service = "FS";
String req = "COPY DIRECTORY " + srcdir + " TODIRECTORY " + desdir + " TOMACHINE " + tomachine + " RECURSE KEEPEMPTYDIRECTORIES";
STAFResult result = stafcore.submit2(location, service, req);

STAX 引擎的使用:

String service = "STAX";
String req = "EXECUTE FILE "+jobpath;
stafcore.submit2(location, service, req);

STAX中有個job的概念,你可以把job理解test case,job是以XML文檔的形式傳遞给STAX服務的,因为STAX是使用Jyhton來執行Python代碼的,而Jython允許以Python的語法格式來訪問Java classes,所以你可以在XML 的<script>元素中插入java 代碼 ,如下 :

<script>
from com.ibm.staf import STAFHandle
myhanlde = STAFHandle("MySTAXJobHandle")
</script>

現在來談談Robot 框架,第一次接觸Robot Framework是幫同事寫一個python腳本,當時很奇怪,要求如果expected result 與 actual result 不符合,就拋出一個exception。現在想想,這個python文件是作为libray 導入到Robot Framework, 裏面包含的方法就是一個個keywords,Robot通過捕獲exception來判定keyword Fail。

Robot是一個開源的自動化測試框架,是由Python實現的。可以說,Robot 實現了你能想到的所有自動化框架能做的事情。

  • Hight-level keywords : 可以基於現有keywords,由幾個keywords組成一個high-level keowrd.
  • Tagging: 測試用例的標簽,可以给測試用例一個,或多個標簽,如smoke 、regression 等,執行測試用例的時候,可以只執行這些含有這些標簽的測試用例.
  • Clear report & detailed log
  • Different library: Robot 提供一些library,如operatingsystem, 還有一些第三方提供的library,如Selenium2Library 用於web 自動化測試。你也可以自己擴展自己library庫,可以用python 和java來實現。用java實現的library,需要jybot來運行。
  • Ride: 是一個用於編寫自動化測試用例的GUI,導入library,便可以創建test suit ,test cases了,支持自動補全的哦。微笑

現在要做的工作就是把原來實現的keyword,按照Robot要求的格式重新實現一遍,主要的不同是判斷keyword pass,還是fail ,Robot要求拋出異常哦!

自動化測試開發,維護過程中,還有一點需要注意:一定要加入版本控制,無論是自動化框架的源碼,還是測試用例、測試數據。現在比較流行的是Git.

最後,貼幾篇文章介紹robot的文章:


From:CNBLOGS
頂一下
(0)
0%
踩一下
(0)
0%
------分隔線----------------------------
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
評價:
表情:
驗證碼:點擊我更換圖片
欄目列表
推薦內容