SilkTest入門快打系列7-異常處理

發表于:2011-03-28來源:作者:點擊數: 標簽:
SilkTest入門快打系列7-異常處理 軟件測試 今天是本教程的最后一講,本來我是想多寫幾個主題的,比如 數據庫 操作, 測試計劃 和 測試用例 ,調用dll,tag和multitag的應用,web應用測試還有編程規范等等??墒?,越到后面,我越覺得很多實例很難用文字描述清

  SilkTest入門快打系列7-異常處理   軟件測試

  今天是本教程的最后一講,本來我是想多寫幾個主題的,比如數據庫操作,測試計劃測試用例,調用dll,tag和multitag的應用,web應用測試還有編程規范等等??墒?,越到后面,我越覺得很多實例很難用文字描述清楚。抓圖是一個可行的辦法,可我又嫌麻煩,投入產出不成正比。最后決定只再介紹一下silktest的異常處理,希望能給初學者留下一個關于異常處理機制的印象,更多的內容,可能還是要靠大家自己在實踐中學習和摸索。

  一般來說,異常處理是高級語言語法必備的一部分。你不必把它想的很神秘,它只是提供了一種機制讓程序員有能力應對預期以外的狀況發生。SilkTest作為一種高級的面向對象腳本語言,當然也提供了異常處理的方法。我在本講只講如何使用最常見的do…except結構來處理異常。

  上一講中的testcase,一共做了兩步,第一步點擊數字鍵1然后打印結果框的值,第二步點擊C鍵清零再打印結果框的值。如果你不小心少敲了第14行代碼的話,你Cal.t代碼應該如下:

  [-] winclass Calculator //1

  [ ] String sResult //2

  [-] Void ClearResult() //3

  [ ] 計算器.C.Click() //4

  [-] void GetResult() //5

  [ ] sResult = 計算器.CalResult.GetText() //6

  [-] Void ClickNum1() //7

  [ ] 計算器.N1.Click() //8

  [ ] window Calculator Cal //10

  [-] testcase CalSetAndClear() //11

  [ ] 計算器.SetActive() //12

  [ ] Cal.ClickNum1() //13

  [ ] //Cal.GetResult() //14,假設你注釋了這行

  [ ] Print(Cal.sResult) //15

  [ ] Cal.ClearResult() //16

  [ ] Cal.GetResult() //17

  [ ] Print(Cal.sResult) //18

  你在運行時會報錯如下:

  [ ] *** Error: Variable (sResult) has not been set

  [ ] Oclearcase/" target="_blank" >ccurred in CalSetAndClear at Cal.t(15)

  報錯的原因是,由于你沒有調用Cal.GetResult(),所以導致Cal.sResult沒有初始化,當SilkTest運行到第15行會認為這是一個嚴重的問題,就會拋出一個異常。而你的代碼中沒有異常處理結構,這個異常不會被捕獲處理,系統默認行為就是終止case運行,然后打印相關的信息提醒用戶。

  我們在入門快打2中也使用了拋出異常的函數raise,那是用戶主動拋出通知系統的,而本講中是系統拋出的。但是他們的結果都一樣,如果沒有被處理的話,該異常會導致SilkTest的退出。

  未被處理的異常有時候會是一個問題,想象一下,假設你的測試有100步,當測試運行到第10步時,突然測試腳本報一個異常(可能是待測軟件的問題,可能是環境的問題,也可能是你編寫的腳本的問題),你如果不處理,測試即時終止,那么其后的90步都無法運行。這很可能不是我們期望的結果。

  不要急,在這種情況下,你可以用do…except將可能出現異常的代碼段封起來(具體哪些代碼段可能出現異常,只能根據你靠經驗來判斷了),例如:

  view plaincopy to clipboardprint?

  01.Do

  02. OneObject.Click()

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

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