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

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

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

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

    Rational中DataPool的介紹與實際應用-續(1)

    發布: 2007-4-29 00:23 | 作者: p | 來源: 51testing | 查看: 73次 | 進入軟件測試論壇討論

    領測軟件測試網

    第一步:創建名字為dp的javascript:;" onClick="javascript:tagshow(event, 'datapool');" target="_self">datapool,假如字段name,password并自動生成數據,然后把測試用例中各種數據輸入dp中

    第二步:錄制功能測試腳本,腳本如下:

     

    Sub Main

        Dim Result As Integer

     

        'Initially Recorded: 2004-4-24  10:59:24

        'Script Name: Five

        StartApplication "xxx"

       

        Window SetContext, "Caption=登陸", ""

        InputKeys "sa"

        EditBox Click, "ObjectIndex=1", "Coords=34,9"

        InputKeys "sa"

        PushButton Click, "Text=登陸"

       

        Window SetContext, "Caption=登陸;Class=#32770", ""

        PushButton Click, "Text=確定"

       

    End Sub

     

    第三步:循環讀出datapool數據,進行自動化測試,腳本如下

     '$Include "sqautil.sbh"

     

    Sub Main

        Dim Result As Integer

        Dim dp_id as Long

        Dim dp_Result as Long

       

        Dim strName as String

        Dim strPassWord as String

      

        'Initially Recorded: 2004-4-24  10:30:51

        'Script Name: Four

     

        StartApplication "xxx"

        Window SetContext, "Caption=登陸", ""

        dp_id = SQADatapoolOpen ("dp", FALSE, SQA_DP_SEQUENTIAL, FALSE)

       

    dp_Result = SQADatapoolFetch (dp_id)

       

         while dp_Result <>  sqaDpEOF

       

               dp_Result = SQADatapoolValue (dp_id, "name", strName)

               dp_Result = SQADatapoolValue (dp_id, "password", strPassWord)

               dp_Result = SQADatapoolFetch (dp_id)

             

               InputKeys strName

               EditBox Click, "ObjectIndex=1", "Coords=34,9"

               InputKeys strPassWord

               PushButton Click, "Text=登陸"

       

               Window SetContext, "Caption=登陸;Class=#32770", ""

               PushButton Click, "Text=確定"

        wend

     

        dp_Result = SQADatapoolClose (dp_id)

       

    End Sub

     

    第四步: 加入執行成功和失敗的result信息并寫入Result report中,和必要的除錯處理。對腳本進行優化。加入BASELINE設置(對于測試基線有兩種思路,一種是文件處理,采用文件類型為文本文件或者EXCEL或者WORD,讀取DATAPOOL測試數據和文件內容對比,檢測測試數據是否在文件中存在,當然這里的測試基線考慮的不夠周全,你可以定制規則,逐步完善,一種是直接從數據庫中讀取數據進行對比,用數據庫作為baseline來避免以后增加測試用例后改動baseline文件,當然這么做跟測試理論不合,應該把預期輸出保存到特定文件中作為baseline,這個留給你自己動手來改進)。

    腳本如下:

    '$Include "sqautil.sbh"

     

    Sub Main

        Dim Result As Integer

        Dim dp_id as Long

        Dim dp_Result as Long

       

       

        Dim strMessage as String

        Dim vSText as string

       

        Dim cnn As object

        Dim Rst As object

      Dim strLink As String

        Dim strSql As String

       

        Dim strName as String

        Dim strPassWord as String

      

        'Initially Recorded: 2004-4-24  10:30:51

        'Script Name: Four

       

        strLink = "連接字符串"

       

        Set cnn = CreateObject("ADODB.Connection")

        Set Rst = CreateObject("ADODB.Recordset")

        cnn.Open strLink

        Rst.CursorLocation = 0

        Rst.LockType = 1

        Rst.CursorType = 2

       

       

         On Error Goto Last

         StartApplication "xxx"

       

         Window SetContext, "Caption=登陸", ""

        

         dp_id = SQADatapoolOpen ("dp", FALSE, SQA_DP_SEQUENTIAL, FALSE)

       

         dp_Result = SQADatapoolFetch (dp_id)

        

         if (dp_Result = 0) then

              while dp_Result <>  sqaDpEOF

       

                    dp_Result = SQADatapoolValue (dp_id, "name", strName)

                    dp_Result = SQADatapoolValue (dp_id, "password", strPassWord)

                    dp_Result = SQADatapoolFetch (dp_id)

              

                   

                        

                    InputKeys strName

                    EditBox Click, "ObjectIndex=1", "Coords=34,9"

                    InputKeys strPassWord

                    PushButton Click, "Text=登陸"

                   

                    strMessage = "用戶名:" + strName + "; 密碼:" + strPassWord 

                   

                    strSql = "select * from login where name = "" " + strName + " "" and password = """ + strPassWord + """"

                    Rst.open strSql, cnn

       

       

                    Window SetContext, "Caption=登陸;Class=#32770", ""

                    ‘這個函數是作為插入驗證點,驗證點為窗體提示信息,沒有用window image來作為驗證點,是因為無法把該腳本進行模塊化,存入shl文件中,將來多平臺使用。

                    SQAGetProperty  "Label", "Text", vSText

                                 

                   

                    ‘如果rst.RecordCount返回值為1,說明此用戶在數據庫中存在

                    ‘測試用例分為成功,失敗的測試用例,失敗的測試用例中即使數據

    ’錯誤,但有預期輸出就是成功的用例,所以寫入result report中的信

    ‘息分為三種,成功,失敗,預期失敗,對于程序中有不是預期的窗

    ‘體,用程序自動關閉掉,繼續執行,這里安全的做法做標志然后關

    ‘閉整個軟件,重新啟動軟件,測試腳本從失敗處繼續執行

                         if Rst.RecordCount= 1 then

                            if (vSText="登陸成功") then

                               PushButton Click, "Text=確定"

                               SQALogMessage sqaPass, "測試數據為" + strMessage + "的測試用例執行成功", "項目名稱"

                            else

                               '出現異常窗體,該用例測試失敗

                               SQALogMessage sqaFail, "測試數據為" + strMessage + "的測試用例執行失敗", "項目名稱"

                               SQAGetProperty "Window", "Text", vSText  

                               SQALogMessage sqaFail, "出現錯誤窗體:"+ vSText, "項目名稱"

                               Window CloseWin, "Caption=" + vSText, ""

     

                            end if  

                         else

                            if (vSText="登陸失敗") then

                               '數據錯誤,用例執行失敗,軟件功能正常

                               PushButton Click, "Text=確定"   

                               SQALogMessage sqaFail, "測試數據為" + strMessage + "的測試用例執行失敗但軟件功能正常", "項目名稱"

                            else

                               '出現異常窗體,該用例測試失敗

                               SQALogMessage sqaFail, "測試數據為" + strMessage + "的測試用例執行失敗", "項目名稱"

                               SQAGetProperty "Window", "Text", vSText  

                               SQALogMessage sqaFail, "出現錯誤窗體:"+ vSText, "項目名稱"

                               Window CloseWin, "Caption=" + vSText, "" 

                            end if  

                         end if

                   

              wend

       

              dp_Result = SQADatapoolClose (dp_id)

        else

             SQALogMessage sqaFail, "數據池打開失敗", "項目名稱"

        end if

     

    Last:

          SQALogMessage sqaFail, "測試腳本發生異常,測試腳本執行失敗", "項目名稱"    

     

       

    End Sub

     

     

    總結:

          上邊腳本是對登陸功能測試自動化初步優化后的代碼,后邊還要做的是腳本模塊化,函數話,功能分切。腳本過大不容易維護,把其中連接數據庫,處理datapool功能寫成函數提供其他工程使用。其實也可以把測試數據存入文本文件,word,excel等文件中,然后讀出處理模擬datapool功能,但開發腳本工程量大。datapool提供自動生成數據功能和能夠和工程結合是它的優點,但很困難多個工程共享datapool。


    延伸閱讀

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


    軟件測試技術文章排行榜
    軟件測試技術分類最新內容
    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系: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>