• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    新一篇: SilkTest 對 Excel 表操作的兩種方式

    發布: 2008-5-06 17:42 | 作者: Zeng YueTian | 來源: Zeng YueTian博客 | 查看: 216次 | 進入軟件測試論壇討論

    領測軟件測試網
    作者Zeng YueTian,轉載請注明出處http://blog.csdn.net/yuetiantian/
     
    開發任何軟件都需要檢測軟件的運行情況,記錄相應的日志,為以后的跟蹤提供依據。作為測試軟件,silktest提供了不少函數來方便測試工程師記錄系統信息,尤其系統發生異常時的信息。這節就簡單介紹一下silktest中常用的一些異常相關函數。
    在這之前呢,讓我們復習一下,silktest默認的異常處理機制:
    如果一個testcase失敗,例如期望值和你需要驗證的表達式的值不匹配,silktest在默認情況下會調用內置的復原系統,該系統會做如下的一些事情:
    結束該testcase,把錯誤記錄到result文件中,并且將你的應用恢復到默認的基本狀態,為執行下一個case做好準備。
    如果我們需要處理異常的話,可以把覺得可能產生異常的語句用do…except…包起來,這樣在do里面產生的異常就可以在except語句塊中進行處理啦。
    異常相關的函數都是以Except單詞開頭的,例如ExceptCall,ExceptData等等。
    1.       ExceptData()
    該函數返回值是最近一條異常的數據,它的類型是ANYTYPE。其實,這里面有兩種情況,如果最近的這個異常是silktest自動產生的異常,那么該函數返回的是該錯誤的信息字符串,如果是用戶自定義的異常,即用戶使用raise或者reraise產生的異常,那么返回值是ANYTYPE類型。下面是silktest幫助里面提供的一個例子:
    testcase ExceptDataExample ()
               do
                  Verify ("xxx", "yyy")
               except
                  Print (ExceptData ())
               do
                  raise 1, "My error"
               except
                  Print (ExceptData ())
               do
                  Print ("This will cause an exception. {5/0}")
               except
                  Print (ExceptData ())
           該testcase輸出的結果如下:
            *** Error: Verify Failed - expected yyy, got xxx    //這是自動產生的異常,所以是字符串
            My error                                   //這是用戶自定義的
            *** Error: Divide by zero                      //這是自動產生的
     
    2.       ExceptLog()
    該函數將把異常信息記錄進result文件。它通過調用內置的LogError函數把最接近的一條異常記錄進result文件。它也可以把發生異常時的調用堆棧的相關信息寫入result文件。
     
    3.       ExceptNum()
    該函數返回最近一個異常的異常號。該異常號是一個負整形數值,為了避免沖突,一般使用正數來表示你自己拋出的異常。下面是一個使用ExceptNum函數來判斷異常號的testcase:
           testcase ExceptNumExample ()
               do
                  Verify ("xxx", "yyy")
               except
                  Print (ExceptNum () == E_VERIFY)
               do
                  raise 1, "My error"
               except
                  Print (ExceptNum ())
               do
                  Print ("This will cause an exception. {5/0}")
               except
                  Print (ExceptNum () == E_DIVIDE_BY_ZERO)
           Testcase的執行結果如下:
            TRUE
            1
            TRUE
     
    4.       ExceptCall()
    該函數返回一系列導致異常發生的函數調用,也就是說它的返回值類型是LIST OF CALL。一個CALL記錄有三個域,它們分別是:
    描述
    iLine
    返回函數調用或者是異常發生的行號(Integer)
    sFunction
    異常發生所在的函數名(String)
    sModule
    包含sFunction的文件名(String)
    下面是一個例子:
    testcase ExceptCallsTest ()
               do
                  MyFunction ()
               except
                  PrintCallStack (ExceptCalls ())
            MyFunction ()
               Print ("In MyFunction")
               raise 1, "raise an exception here"
            PrintCallStack (LIST OF CALL 1cCall)
               CALL Call
               for each Call in lcCall
                  Print ("MODULE: {Call.sModule}",
                         "FUNCTION: {Call.sFunction}",
                         "LINE: {Call.iLine}")
           該腳本的執行結果如下:
            In MyFunction
     
     MODULE: test.t FUNCTION: MyFunction LINE: 12
    MODULE: test.t FUNCTION: main LINE: 4
     
    5.       ExceptPrint()
    該函數打印所有關于異常的信息到result文件。該函數將調用ExceptCalls, ExceptData, ExceptNum等函數的結果集合起來,打印到result文件。如果ExceptData沒有返回值,那么將使用ExceptNum的結果代替它。
    下面是一個例子:
    testcase ExceptPrintExample ()
               do
                  Verify ("xxx", "yyy")
               except
                  ExceptPrint ()
               do
                  raise 1, "My error"
               except
                  ExceptPrint ()
               do
                  Print ("This will cause an exception. {5/0}")
               except
                  ExceptPrint ()
            該腳本的執行結果如下:
            *** Error: Verify failed - expected yyy, got xxx
            Occurred in Verify
            Called from main at test.t(3)
            My error
            Occurred in main at test.t(6)
     
     *** Error: Divide by zero
            Occurred in main at test.t(9)
     
    6.       ExceptClear()
    該函數清除當前異常的信息,在調用它之后,其它的異常處理函數調用時就好像沒有異常發生過一樣:
    a.       ExceptCall將會返回一個空的列表。
    b.       ExceptData將會返回NULL
    c.       ExceptLog不會打印任何東西(沒有任何錯誤被記log)
    d.       ExceptNum將會返回0
    e.       ExceptPrint將不會打印任何東西

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: Excel silktest SilkTest SilKtest Silktest


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>