SilkTest入門(mén)快打系列7-異常處理 軟件測試
今天是本教程的最后一講,本來(lái)我是想多寫(xiě)幾個(gè)主題的,比如數據庫操作,測試計劃和測試用例,調用dll,tag和multitag的應用,web應用測試還有編程規范等等?墒,越到后面,我越覺(jué)得很多實(shí)例很難用文字描述清楚。抓圖是一個(gè)可行的辦法,可我又嫌麻煩,投入產(chǎn)出不成正比。最后決定只再介紹一下silktest的異常處理,希望能給初學(xué)者留下一個(gè)關(guān)于異常處理機制的印象,更多的內容,可能還是要靠大家自己在實(shí)踐中學(xué)習和摸索。
一般來(lái)說(shuō),異常處理是高級語(yǔ)言語(yǔ)法必備的一部分。你不必把它想的很神秘,它只是提供了一種機制讓程序員有能力應對預期以外的狀況發(fā)生。SilkTest作為一種高級的面向對象的腳本語(yǔ)言,當然也提供了異常處理的方法。我在本講只講如何使用最常見(jiàn)的do…except結構來(lái)處理異常。
上一講中的testcase,一共做了兩步,第一步點(diǎn)擊數字鍵1然后打印結果框的值,第二步點(diǎn)擊C鍵清零再打印結果框的值。如果你不小心少敲了第14行代碼的話(huà),你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
你在運行時(shí)會(huì )報錯如下:
[ ] *** Error: Variable (sResult) has not been set
[ ] Occurred in CalSetAndClear at Cal.t(15)
報錯的原因是,由于你沒(méi)有調用Cal.GetResult(),所以導致Cal.sResult沒(méi)有初始化,當SilkTest運行到第15行會(huì )認為這是一個(gè)嚴重的問(wèn)題,就會(huì )拋出一個(gè)異常。而你的代碼中沒(méi)有異常處理結構,這個(gè)異常不會(huì )被捕獲處理,系統默認行為就是終止case運行,然后打印相關(guān)的信息提醒用戶(hù)。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/