SilkTest入門快打2-編寫腳本測試
在上一講“SilkTest入門 快打系列1- 錄制回放”中,我們介紹了如何建立一個簡單的SilkTest 測試項目 ,用它來測試WindowsXP 自帶計算器的加法功能。在上一講中,我們使用SilkTest 的錄制回放功能來產(chǎn)生測試用例的腳本,雖然它可以工作地很好,但是采用錄制回放的方法,會有一些局限。首先,由于錄制回放總是操作原生對象,沒有隱藏對象的細(xì)節(jié),從而導(dǎo)致每行腳本都很長,不易閱讀。其次,如果待測AUT 的GUI 發(fā)生了變化,那么很可能,你需要重新錄制腳本,不利于已有代碼的維護(hù)。所以這一講中,我將介紹如何直接編寫SilkTest 腳本 進(jìn)行測試。
我們?nèi)匀粶y試計算器的加法功能,首先像上一節(jié)一樣捕捉計算器GUI 的定義,并在其基礎(chǔ)上對其進(jìn)行一定的修改。也就是將/,*,-,+,= 等按鈕的定義名改成容易識別的名稱:
將
[+] PushButton N52 [+] multitag “?[5]” [ ] “$90″ [+] PushButton N92 [+] multitag “?[9]” [ ] “$91″ [+] PushButton PushButton20 [+] multitag “-” [ ] “$93″ [+] PushButton PushButton26 [+] multitag “+” [ ] “$92″ [+] PushButton PushButton27 [+] multitag “=” [ ] “$112″ |
改成:
[+] PushButton Div [+] multitag “?[5]” [ ] “$90″ [+] PushButton Mul [+] multitag “?[9]” [ ] “$91″ [+] PushButton Dec [+] multitag “-” [ ] “$93″ [+] PushButton Plus [+] multitag “+” [ ] “$92″ [+] PushButton Equal [+] multitag “=” [ ] “$112″ |
這樣,我們在腳本里面就可以用“計算器.Plus ”來表示加號按鈕,而不是晦澀的“計算器.PushButton26” 了。
除此以外,我們還需要將
[+] TextField TextField1 [ ] tag “$403″ |
改成
[+] TextField CalResult [ ] tag “$403″ |
然后,我們新建一個WriteScript.t,里面寫如下的代碼:
[-] testcase Cal123Plus() //1 [ ] 計算器.SetActive () //2 [ ] 計算器.C.Click () //3 [ ] 計算器.N1.Click () //4 [ ] 計算器.N2.Click () //5 [ ] 計算器.N3.Click () //6 [ ] 計算器.Plus.Click () //7 [ ] 計算器.N1.Click () //8 [ ] 計算器.N2.Click () //9 [ ] 計算器.N3.Click () //10 [ ] 計算器.Equal.Click () //11 [ ] String sResultValue = 計算器.CalResult.GetText() //12 [-] if(val(sResultValue) == 246) //13 [ ] Print(“Passed: Expect 123+123=246, actually it is {sResultValue}”) //14 [-] else //15 [ ] raise 1, “Failed: Expect 123+123=246, actually it is {sResultValue}” //16 |
我來解釋一下這16 行代碼的意思,其實他們做的事情,和上一講的測試用例是一樣的,就是驗證123+123 的值等于246.
行1 :定義一個名為Cal123Plus 的測試用例
行2 :將當(dāng)前激活的應(yīng)用設(shè)為計算器,如果計算器這個程序沒有運行,那么就先啟動它,然后將其設(shè)為得到焦點的應(yīng)用。
行3 :先點擊一下C 這個按鈕,也就是清除上次計算的結(jié)果
行4- 行11 :分別點擊計算器上的123+123= 這八個按鈕
行12 :定一個字符串變量sResultValue ,把CalResult 控件中的文本值賦給它
行13- 行16 :如果sResultValue 得數(shù)字值等于246 ,就打印測試成功,否則拋出一個異常,表明測試失敗。沒有異常處理程序緊接raise之后的話,默認(rèn)情況下,SilkTest 將終止執(zhí)行。
好了,現(xiàn)在按F9 運行一下你新編寫的WriteScript.t ,看看是不是通過了。
然后,再將WriteScript.t 里面的246 改成247 ,然后運行,這時測試用例應(yīng)該拋出一個異常,你的腳本執(zhí)行結(jié)果是不是這樣呢?
相關(guān)鏈接: