您的位置:軟件測試 > 開源軟件測試 > 開源測試管理工具 >
使用Sahi測試Dojo應用
作者:網絡轉載 發(fā)布時間:[ 2012/12/6 10:56:45 ] 推薦標簽:

  錄制標簽頁

  圖4.Sahi控制器 – 錄制標簽頁

  輸入文件路徑后點“錄制”便開始錄制,點“停”即停止錄制,非常簡單。標簽頁的中部是一個對象識別器,在頁面上按住CTRL鍵,并將鼠標左鍵懸停在某個元素上,對象識別器顯示出能夠識別該元素的Sahi語句。另外,你可以在下方的輸入框中直接輸入Sahi語句并查看運行結果。

  回放標簽頁

  圖5.Sahi控制器 – 回放標簽頁

  回放標簽頁不僅能夠一次性運行腳本,還可以單步運行,甚至可以中途暫停,這給調試代碼帶了很大便利。點擊下方的鏈接可以查看解析后的腳本以及運行日志等。

  4. Sahi腳本

  Sahi腳本基于Javascript,不同的是Sahi腳本中所有的變量必須帶有$前綴。Sahi代理服務器負責將用戶編寫的Sahi腳本解析成Javascript并在Rhino引擎中執(zhí)行(Rhino是一個開源的使Javascript運行于JVM的項目)。所以,Sahi腳本能夠執(zhí)行文件甚至數據庫操作也不足為怪了。Sahi腳本定義.sah文件中,但是所有直接訪問DOM節(jié)點的函數必須定義在browser tag中。

  二.使用Sahi腳本測試Dojo應用

  下面與大家分享一些我個人使用Sahi測試Dojo應用的經驗。為了使示例代碼能夠被讀者方便地運行,選取http://demos.dojotoolkit.org/demos/form/demo.html假設為我們將要測試的應用。這是一個用來演示Dojo表單Widget的頁面。

  1. 如何運行示例代碼

  下載及安裝Sahi(http://sahi.co.in/w/using-sahi)

  下載sahidojodemo.zip并解壓縮到Sahi的userdata/scripts下面。解壓后應該下面這個樣子。

  /userdata/scripts/sahidojodemo/appobjs/JobAppFormPage.sah

  /userdata/scripts/sahidojodemo/tasks/JobAppFormTasks.sah

  /userdata/scripts/sahidojodemo/testcases/JobAppFormTests.sah

  /userdata/scripts/sahidojodemo/testcases/myapp.suite

  /userdata/scripts/sahidojodemo/testcases/testdata.csv

  /userdata/scripts/sahidojodemo/core.sah

  /userdata/scripts/sahidojodemo/run.sh

  啟動Sahi代理服務器。

  運行Sahi的bin目錄下的sahi.sh腳本,或者dashboard.sh也可以啟動Sahi 代理服務器(該腳本用來啟動Sahi Dashboard,同時啟動Sahi代理服務器)。建議啟動dashboard,這樣你能清楚地看出哪些瀏覽器被Sahi探測到了。

  如果Sahi Dashboard中顯示了Chrome,你可以直接運行sahidojodemo下的run.sh。否則,你需要把run.sh中的chrome替換成你系統(tǒng)中存在的瀏覽器,比如firefox。

  如果一切正常你會看到Dojo的Job Form Application應用被打開,然會進行了一系列操作后關掉。這時,如果一些正常,Sahi的控制臺上會顯示"Success"。如果失敗了,你可以去sahi/userdata/logs/playback下面查看日志。

  2. 設計原則

  接下來介紹一下我用Sahi測試Dojo應用時遵循的幾個原則。

  1. 面向對象

  面向對象早已不是什么新鮮事物。其實,UI自動化測試程序直覺上來講可以采用過程式的編程模式,因為它本身是將很多行為串接起來。為什么在測試Dojo應用時要使用面向對象的理念?原因很簡單,因為Dojo Widget本身采用了面向對象的思想。因此,在我的自動化測試框架中,每個Dojo Widget都對應于一個Javascript的“類”,不僅封裝了DOM結構而且更便于代碼重用。

  2. 采用IBM框架(之前叫ITCL - IBM Test Community Leadership)

  從事Web自動化測試的讀者恐怕對IBM框架不會感到陌生。IBM框架由三層組成:應用對象、任務和測試用例。潛在于應用對象、任務和測試用例包之下的基本原理是:

  層次化的體系架構

  將“做什么”與“如何做”分離開來

  代碼重用

  一致和清晰的組織結構

  快速增強的能力

  迅速的調試

  有效地組織文件

  啟用協(xié)作

  學習他人

  下面是對應用對象、任務和測試用例的解釋說明:

  應用對象:儲存有關你的應用程序中的GUI元素信息。同時在這里也可以編寫你的Getter 方法,這些 Getter 方法可以返回對象,使 調用者能夠對這些GUI元素進行查詢和操作。一般情況下,這些方法在Task層中進行調用。

  任務:在這里你將編寫可重用的方法,這些方法在你的應用程序中執(zhí)行通用功能。同時在這里,你將編寫可以處理和查詢復雜的特定應用程序控件的方法。在任務中的方法可以被測試用例調用。

  測試用例:導航一個應用程序,驗證其狀態(tài),并記錄其結果的方法。

  3. 借助Label識別元素

  通常頁面上每個元素都會有一個label并且它是“可見”的。所謂“可見”,是指label的值是不需要借助于工具直接能看到的。例如id、name等,必須通過查看源碼或者一定的工具,如Firebug查看其屬性值。因此通過借助label的元素識別方法可以提高開發(fā)效率(因為你不在需要去用工具查看元素屬性值了)。

  3. 代碼詳解

  三個目錄appobjs,tasks以及testcases即是IBM框架中的三層架構,其中的JobAppFormPage.sah,JobAppFormTasks.sah以及JobAppFormTests.sah分別是應用對象、任務和測試用例程序文件(Sahi腳本)。

  Dojo Widget的封裝

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd