QTP學習筆記(一)
一.測試目的:在測試過程中,需要使用模擬器來產生測試需要的資料,因為需要統計軟體的資料準確率,所以每次使用的資料都是相同的,這樣會產生一定的重複工作量,並且手工產生資料會有一定出錯的機率,所以使用自動化測試工具錄製指令碼,每次執行測試之前執行該指令碼可使用保證測試速度和資料的準確程度。
二.錄製模式和方法:因為暫時沒有安裝.net外掛,所以指令碼採用”analog模式錄製。測試需要用到的資料分為A1A2兩大類,每個大類的資料又分為16小類,A1採用action呼叫的方式進行錄製,A2採用順序錄制方式。
三.Action呼叫的操作方法:
分別在多個指令碼中完成子類資料的action錄製,而後整合到action_A1中,在QTP介面insertcall to copy of Actionfrom test:指令碼名稱action:需要呼叫的actionlocation:After the current step
:在涉及action呼叫的情況下進行action copy不能連同它所呼叫的action一塊拷貝過來,它所呼叫的action需要另外新增。
四.評價
1.增加新action的時候,如果採用”After the current step”方式,可使指令碼的步驟層次分明,但是這種錄製方式在呼叫的action級數較多時,修改會非常的麻煩,刪除其中的一個action會連同它的子action一起被刪掉。
2.採用”At the end of the test”方式可避免上述問題,但是錄次不是很分明。在軟體達到一定規模的情況下,建議兩種增加action的交替使用,增加指令碼的可用性。
五.學習到的內容
1.插入等待時間
  Wait ,毫秒
  例如:wait 10   等待10
        Wait 0,200   等待200毫秒
2.新增新action
  Inseritcall to new action
3.在本指令碼中實現action呼叫
  Insertcall to existiong action
4.新增新步驟
  Insertnew step
5.執行當前action
  Automationrun current ation
6.從當前步驟執行
  Automationrun current step
7.逐步除錯執行
  Debugstep into
8.設定執行指令碼的模式
  Tools–optionsrun選項卡
9.設定運營指令碼時的各項資料
  Filesettingsrun選項卡超時等待,發生錯誤時是否退出執行並彈出提示,出錯時是否儲存p_w_picpath資訊等
QTP學習筆記(二)
一.測試目的:在軟體系統聯調的過程中,子系統B擔當了提供核算資料的任務,所以對子系統B的操作很多是重複的步驟,並且B所提供的資料需要十分準確,所以採用自動化測試來解決這個問題。
二.處理方法:
1.採用順序錄制方式,不涉及其他呼叫
2.採用”Analog Recording”錄製模式與常規錄製模式結合的方法
三.評價:
1.縮短了執行時間,每個指令碼平均執行時間為1分鐘
2.減少資料錄入錯誤
四.學習到的內容:
    1.設定action的屬性
     action的屬性設定為”Reusable action”後,該action可被其他action或其他指令碼呼叫
    2.VBS指令碼中”do… …until”迴圈的使用
     例如迴圈兩次
     Dim m
     M=0
     Do until m=2
        Runaction”01_01”,oneIteraction
        M=m+1
     Loop
    3.VBS指令碼中”for nest”迴圈的使用
     例如迴圈執行10
     Dim i
     I=0
     For i=0 to 9 step 1
     … …
     I=i+1
     Next
QTP學習筆記(三)
一.測試目的:在軟體系統聯調的過程中,子系統B擔當了提供核算資料的任務,所以對子系統B的操作很多是重複的步驟,並且B所提供的資料需要十分準確,所以採用自動化測試來解決這個問題。
二.問題及解決方法:
    1.問題:錄製指令碼的過程上通過分action錄製方式,將各業務分別錄製,但通過實踐,將action的屬性設定為”after the current step”方式,使action的結構層次過多,不便於後期維護
      :將新新增的action屬性設定為”At the end of the test”方式
2.問題:某一段錄製過程需要重複執行時,採用”For… …next”迴圈,其中”step”指定的步驟發生錯誤,導致迴圈未被執行
  :”for… …next”迴圈中的step是指迴圈中包含的步驟的順序號,而不是針對整個指令碼而言
3.問題:單步除錯通過的步驟在run的時候執行發生錯誤

  :暫時未找到更好的解決方法,仍採用重新錄製指令碼的方式解決
三.評價:
    1.該指令碼的實際執行時間為25分鐘,同樣的操作由測試人員手工完成需要至少2個小時,節約了時間成本,減少了人為出錯機率。
2.完成B測試工作量的60%,減少了測試成本。
3.錄製初期沒有將軟體測試流程考慮全面,導致指令碼執行度較低,並且質量差,不適用於當前的系統測試,後經多次返工才日趨完善。
四.學習到的內容
    1.action屬性的正確設定方法
2.若在其他action中編寫”RunAction”action名稱”,oneIteration”來達到action呼叫的目的
3.在同一個action中,重得執行的步驟可通過拷貝、貼上專家檢視中的編碼完成
QTP學習筆記(四)
一.測試目的:在軟體系統聯調的過程中,子系統B擔當了提供核算資料的任務,所以對子系統B的操作很多是重複的步驟,並且B所提供的資料需要十分準確,所以採用自動化測試來解決這個問題。
二.問題及解決方法:
    1.問題:因為介面中各個控制元件的整合度較低,採用”analog recording”模式錄製指令碼,但因為各編譯版本介面的邏輯位置發生改變,導致指令碼只能夠執行在當前錄製的指令碼上。
     :更新各個action中的物件,採用updata的方式將介面物件進行更新
三.學習到的內容
    1.更新action物件的方法
     Resourcesobject repositoryaction:要進行物件更新的action選中物件objectupdate from application指定到更新目標
2.通過物件管理器新增介面中的物件
 Resourcesobject repository managerobjectnavigate and learn選中介面navigate and learn窗體中選擇”learn”按鈕退出時儲存即可
QTP學習筆記(五)
一.測試目的:能夠在TD中呼叫已編寫好的QTP指令碼,實現自動化測試的管理。
二.操作方法
    1.登入TC主頁面add_in pagemore testdirector add_ins選擇項,下載連線QTP的外掛,並安裝
2.開啟QTP指令碼,在介面工具欄中點選”quality center connection”按鈕,在”server url”中輸入TD的地址,”project connection”中各項按TD中的配置新增
3.toolsoptions”run”選項卡勾選”submit a defect to quality center for each failed step”,”allow other mercury products to run tests and components”
4.登入TD”REQUIREMENTS”選項卡中新增測試專案,在”TESTPLAN”選項卡中新增測試計劃,並將兩項內容在”REQUIREMENT”中關聯起來
三.問題及解決方法
    1.問題:完成操作方法中”13”步後並沒有在QTP指令碼中增加連線成功的標誌
2.問題:在為TESTPLAN增加的step配置”test script”TD退出
3.問題:即使在生成”test script”TD不退出,載入QTP指令碼也會失敗,偶爾連線成功,指令碼為”read_only”模式,指令碼內容不可被修改並且原錄製步驟被刪除
:上述13問題的解決辦法見QTP學習筆記(七)
四.針對上述問題的個人意見
上述產生有可能與TD是破解版本有關,因破解時部分內容出錯導致,另一種可能是啟動了瑞星防火牆。
五.學習到的內容
安裝TD之前在server伺服器上應事先安裝oracle,sql serveraccess資料庫,用來儲存資料。
QTP學習筆記(六)
一.測試目的:建立QTP物件庫
二.操作方法
    1.儲存物件
Resourcesobject repositoryfileexport local objects
2.在新建action或新建指令碼中引用物件
Resourcesassociate repositories”repositories”中選擇物件檔案,在”available actions”中選擇呼叫物件的action
三.學習到的內容
    1.在儲存物件時,每個action的物件單獨儲存,同樣,引用物件時也需要逐一引用(全域性物件除外),建議為每個指令碼建立一個物件資料夾,用來與其他指令碼進行區分
2.QTP”.net”外掛,”qtp92-net-addin.zip”安裝後仍不識別”data gridview”控制元件中的下拉選單,只能用”analog recording”模式錄製指令碼
 
未完,繼續見《QTP學習筆記(下)》