Rational Robot 自動測試框架

發表于:2011-12-07來源:未知作者:領測軟件測試網采編點擊數: 標簽:自動化測試框架
摘要: 1.框架的重要性. 2.什么是框架? 3.框架的特征. 4.如何實現框架. 1.首先先提出疑問: 什么是框架呢? 框架,即Famework。其實就是某種應用的半成品,就是一組組件,供你選用完成你自己的系統。簡單說就是使用

  摘要:

  1.框架的重要性.

  2.什么是框架?

  3.框架的特征.

  4.如何實現框架.

  1.首先先提出疑問: 什么是框架呢?

  框架,即Famework。其實就是某種應用的半成品,就是一組組件,供你選用完成你自己的系統。簡單說就是使用別人搭好的舞臺,你來做表演; 一個沒思想的機械人。而且,框架一般是成熟的,不斷升級的。

  2.測試為什么要用框架?

  回歸測試每個版本發布都包括新增加的功能和已有的功能,已有的功能已經在以前的版本中進行過測試,但是還需要在此版本中執行回歸測試。在這種情況下,測試部門往往會考慮到,既然回歸測試的測試用例都已經存在并且已經在上一個版本中執行過,那么在新版本中能否自動的執行這些測試?如果能這樣的話,將極大的節省時間和資源,將有限的資源投入到新功能的測試上,緩解測試的壓力。那我們就會想到用自動化功能測試代替手工測試.

  當用工具進行自動化功能測試時,每個測試用例對應N個測試腳本,那算起來,腳本真是N多呀.那錄制及維護這些腳本的測試人員就會叫苦連天,另一方面項目進度及成本的壓力,根本沒有太多余的時間給測試人員去花時間在自動化功能測試.

  測試其實好多東西都能重用,假想我們把這個舞臺都搭好了,你只需要集中精力完成系統的業務邏輯的測試,把這此業務邏輯轉化成一批數據,那框架只需要讀取數據就可以實現你的邏輯測試.例子就正如我們希望機械人給我們測試,那你只需要告訴他對象,動作,他就能實現你的工作,而不需要你去寫腳本。智能吧。繼續看下來吧。

  3.Robot測試框架

  那這個機械人是如何運作的呢。人類應該給他怎樣的指令,他才能讀懂并工作呢?

  使用Robot的SQABasic腳本開發的Robot測試技術框架。此Robot測試技術框架以表驅動為指導思想,讀入動態結構,解釋并執行動態結構中的每一項,這是自動化測試的引擎。

  (圖1: 三者交互工作圖)

  下面我會以Window Calculator 作為例子解釋,而測試目的是:測試Calculator所以功能的正確性。

  數據驅動:Datapool及外部數據表驅動

  Datapool是Robot的數據存貯文件,Robot可對它進行讀寫。

  這里的表是指Robot 外部表,如EXCEL表,它可以嵌套(OLE)在Robot里,Robot可對它進行讀寫。

  數據表是測試人員向Robot下達業務測試命令的媒體。傳送的內容有:對象(窗體及控件)、動作、期望值。如下表所示:

  (圖2: 數據表圖)

  這個表中這里一共針對Calculator工具中三種不同的控件進行操作:Menu, PushButton, EditBox.

  每一行代表是要求Robot操作的一個動作。這個表的動作邏輯就是:

  1).計算1+80=?,然后判斷值是否正確

  2).Sqrt(81)=?, 然后判斷值是否正確

  3). 點擊不同的菜單。然后判斷。

  那ROBOT如何腳本實現框架化?

  把腳本分兩部分維護即可:主程序(sub main)+子程序(sub-function/sub)

  主程序要實現功能是把“指定表名”傳入到子程序中。

  Sub-function是實現對主程序傳入的數據表名的內容進行不同動作處理。分為兩層,第一層讀取主程序傳入數據表名,讀取數據表的內容,判斷數據表的控件是什么,并對號入座到不同處理過程(第二層)。第二層就是對不同的動作進行相關操作。

  為什么要判斷控件呢:原因是robot對不同的控件類型所做一系列動作都是不同,那可它放動不同的sub-function中處理。如Robot對一個PushButton控制進行Click操作和DBClick對都不同的,所以分類處理.

  (圖3: 交互圖)

  以上圖可以清楚地看到主程序和子程序和計算器之間的交互.

  (圖4: 活動圖)

  (圖5: 活動圖)

  以上圖可以看到主程序及子程序的內部處理動作.

  以ROBOT語言說明:

  以下實例將以讀取datapool的數據為例。

  (圖6: 為主程序)

  ApplicationDatapoolData這些是sub-function. 讀取名為”FWCalcData”的數據表名 名到sub-function中.

  (圖7:ApplicationDatapoolData)

  這個sub-function的作用是打開數據表,讀取數據內容,按不同的控件類型轉到不以sub-function中. 如當控件類型是PushButton時,就調用sub-function “processPushButton”.

  所有這些子程序應放到Global.shl文件作為公共調用,這樣就會方便多了。

  (圖8)

  上圖8為sub-function”ProcessPushButton”. 是對PushButton這種控件的不同動作的進行處理.

  另外在圖2 數據表圖中,還有部分是Verify Result的動作,其目的是判斷實際值與數據表中期望值不一致時傳到 Robot回放結果窗體顯示。

  Function如下:

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97