datapool ,假如字段name,password并自動生成數據,然后把 測試 用例 中各種數據輸入dp中 第二步:錄制 功能測試 腳本,腳本如下: Sub Main Dim R" name="description" />

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

發表于:2007-04-29來源:作者:點擊數: 標簽:rational實際應用datapool介紹
第一步:創建名字為dp的 java script:;" onClick="javascript:tagshow(event, 'datapool');" target="_self"> datapool ,假如字段name,password并自動生成數據,然后把 測試 用例 中各種數據輸入dp中 第二步:錄制 功能測試 腳本,腳本如下: Sub Main Dim R

第一步:創建名字為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.anti-gravitydesign.com

...

熱門標簽

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