999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

QTP數據驅動測試方法探討

2014-07-02 20:54:55蔣桂梅
科技視界 2014年10期
關鍵詞:參數化

蔣桂梅

【摘 要】在使用QTP進行自動化測試時,數據驅動起著舉足輕重的作用,進行數據驅動關鍵是實現腳本的參數化。筆者結合實例總結和歸納了多種進行數據驅動參數化的方式。

【關鍵詞】QTP;自動化測試;參數化

0 引言

自動化測試是使用軟件來控制測試執行過程,需要在適當的時間使已形式化的手工測試過程自動化,最好的自動化測試工具是能夠將工具與測試需求達成一致,并且提供高度可自定義的工作流程和跟蹤報告能力[1]。

Mercury QuickTest Professional(簡稱QTP)是企業級自動化測試工具,已被惠普公司收購,QTP主要適用于功能和回歸測試的自動化,采用關鍵字驅動的理論來簡化對測試用例的創建和維護,用戶可以直接錄制屏幕上的操作流程,自動生成功能測試或回歸測試腳本。當腳本錄制完成,并不能完全立即使用,主要原因是錄制的腳本只能覆蓋一條測試用例,并且對數據的依賴性很強,更換數據后就會出錯,這種線性的自動化測試方式缺點很明顯,需要對腳本進行優化和增強。

適當調整和增強測試腳本,提高腳本的靈活性,數據驅動方式的測試腳本是解決這類問題的重要方式。數據驅動的測試方法要解決的核心問題是把數據從測試腳本中分離出來,從而實現測試腳本的參數化[2]。

1 數據驅動測試的步驟

數據驅動測試一般按以下步驟進行[3]:

1)參數化測試數據,綁定到數據表格中的各個字段;

2)在表格中編輯多行的測試數據,取決于測試用例及測試覆蓋率的需要;

3)設置迭代次數,每次迭代選擇一行數據。

2 參數化方法

2.1 DataTable實現參數化

本測試是測試飛行程序的登錄用戶名和密碼,將多組測試數據放在DataTable的Global或當前Action表中。DataTable是一種最容易實現參數化的方式。

2.2 環境變量實現參數化

參數化在“Value Configuration Option”對話框中設置“Name”和“Value”框中進行設置,環境變量實現參數化當在同一個Test中多個Action調用同一個參數時,使用環境變量作為參數是一種很好的方式,但每個參數值都要指定,如果測試多組數據工作量就大了。

2.3 使用文本文件實現參數化

先在腳本根目錄中創建txt文件,將內容輸入文件中,輸入格式如圖4。

QTP腳本代碼如下:

Const ForReading=1

FilePath = Environment("TestDir")&"\login.txt" '取得存儲數據的txt文件的路徑

Set FSO = CreateObject("Scripting.FileSystemObject")

Set DataFile = Fso.OpenTextFile(FilePath,ForReading,False)

Do while DataFile.AtEndOfLine<>true

systemutil.Run "D:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe","","",""

ReadString = DataFile.ReadLine '讀取txt文件中的行記錄

DataStr = split(ReadString,",") '將行記錄以逗號為分隔符分開,并存入數組中

Dialog("Login").WinEdit("Agent Name:").Set datastr(0) '輸入用戶名

Dialog("Login").WinEdit("Password:").SetSecure datastr(1) '輸入密碼

Dialog("Login").WinButton("OK").Click

If Dialog("Flight Reservations").Exist (5) then

Dialog("Flight Reservations").winbutton("確定").Click

Dialog("Login").winbutton("cancel").Click

else

Window("Flight Reservation").Close

end if

wait(3)

loop

DataFile.close

do-loop結構是為了使多組數據循環執行下去,直到文件結尾,if-else-endif結構是判斷對話框“Flight Reservations”的存在與否來推斷用戶和密碼是否輸入錯誤的情況處理,讓循環能繼續下一組數據的驗證。

2.4 使用excel表實現參數化

先在腳本根目錄中創建xls文件,將內容輸入文件中,輸入格式如圖5。

QTP腳本代碼如下:

datatable.ImportSheet "login.xls","login_sheet","Action1"

'第一個參數是源文件,第二個參數是源文件工作表名稱,第三個參數是目的路徑表名稱

Dim i,rowcount

i=1

rowcount=datatable.GetSheet ("Action1").GetRowCount

Do while(i<=rowcount)

systemUtil.Run "D:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe","","",""

datatable.SetCurrentRow (i)

Dialog("Login").WinEdit("Agent Name:").Set DataTable("user", dtLocalSheet)

Dialog("Login").WinEdit("Password:").Set DataTable("pwd", dtLocalSheet)

Dialog("Login").WinButton("OK").Click

If Dialog("Login").Dialog("Flight Reservations").Exist (5) then

Dialog("Login").Dialog("Flight Reservations").winbutton("確定").Click

Dialog("Login").winbutton("cancel").Click

else

Window("Flight Reservation").Close

end if

i=i+1

Loop

datatable.ImportSheet語句是導入Excel外部文件到DataTable的Action1中,do-loop結構依然是為了使多組數據循環執行下去。

3.5 使用XML文件實現參數化

先在腳本根目錄中創建XML文件,將內容輸入文件中,輸入格式如圖6。

QTP腳本代碼如下:

set xmldoc=CreateObject("microsoft.xmldom")

TestPath = Environment("TestDir")&"\ login.xml"

xmldoc.load(TestPath)

Set Root=xmldoc.documentElement

For i = 0 To Root.childNodes.Length-1

systemutil.Run "D:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe","","",""

Set TestCases = Root.childNodes.Item(i)

For j = 0 To TestCases.childNodes.Length-1

Set TestCase = TestCases.childNodes.Item(j)

If cstr(TestCase.nodeName)="UserName" Then

Dialog("Login").WinEdit("Agent Name:").Set TestCase.text

end if

If cstr(TestCase.nodeName)="PW" Then

Dialog("Login").WinEdit("Password:").SetSecure TestCase.text End If

Next

Dialog("Login").WinButton("OK").Click

If Dialog("Login").Dialog("Flight Reservations").Exist (5) then

Dialog("Login").Dialog("Flight Reservations").winbutton("確定").Click

Dialog("Login").winbutton("cancel").Click

else

Window("Flight Reservation").Close

end if

wait(3)

Next

Set root=nothing

Set xml=nothing

QTP腳本中用到了雙層for語句,外層for語句用于多組數據的循環,內層for用于同組數據多個字段間的循環。

4 結論

通過參數化方式,從外部數據源或數據產生器讀取測試數據,從而擴大測試的覆蓋面,提高了測試的靈活性。除了以上方式實現參數化,還可以使用數據庫表作為數據源。在實際的測試工作中,我們可以根據需要靈活組合方式來進行使用。

【參考文獻】

[1]王磊.關鍵字驅動的自動化測試框架設計與實現[J].電子測試,2010,41(8):91-97.

[2]王蕾.基于數據驅動的軟件自動化測試框架系統的研究與實現EJ1[J].軟件導刊,2009,38(6):33-34.

[3]陳能技.QTP自動化測試技術進階[M].北京:電子工業出版社,2010.

[責任編輯:謝慶云]

Do while(i<=rowcount)

systemUtil.Run "D:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe","","",""

datatable.SetCurrentRow (i)

Dialog("Login").WinEdit("Agent Name:").Set DataTable("user", dtLocalSheet)

Dialog("Login").WinEdit("Password:").Set DataTable("pwd", dtLocalSheet)

Dialog("Login").WinButton("OK").Click

If Dialog("Login").Dialog("Flight Reservations").Exist (5) then

Dialog("Login").Dialog("Flight Reservations").winbutton("確定").Click

Dialog("Login").winbutton("cancel").Click

else

Window("Flight Reservation").Close

end if

i=i+1

Loop

datatable.ImportSheet語句是導入Excel外部文件到DataTable的Action1中,do-loop結構依然是為了使多組數據循環執行下去。

3.5 使用XML文件實現參數化

先在腳本根目錄中創建XML文件,將內容輸入文件中,輸入格式如圖6。

QTP腳本代碼如下:

set xmldoc=CreateObject("microsoft.xmldom")

TestPath = Environment("TestDir")&"\ login.xml"

xmldoc.load(TestPath)

Set Root=xmldoc.documentElement

For i = 0 To Root.childNodes.Length-1

systemutil.Run "D:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe","","",""

Set TestCases = Root.childNodes.Item(i)

For j = 0 To TestCases.childNodes.Length-1

Set TestCase = TestCases.childNodes.Item(j)

If cstr(TestCase.nodeName)="UserName" Then

Dialog("Login").WinEdit("Agent Name:").Set TestCase.text

end if

If cstr(TestCase.nodeName)="PW" Then

Dialog("Login").WinEdit("Password:").SetSecure TestCase.text End If

Next

Dialog("Login").WinButton("OK").Click

If Dialog("Login").Dialog("Flight Reservations").Exist (5) then

Dialog("Login").Dialog("Flight Reservations").winbutton("確定").Click

Dialog("Login").winbutton("cancel").Click

else

Window("Flight Reservation").Close

end if

wait(3)

Next

Set root=nothing

Set xml=nothing

QTP腳本中用到了雙層for語句,外層for語句用于多組數據的循環,內層for用于同組數據多個字段間的循環。

4 結論

通過參數化方式,從外部數據源或數據產生器讀取測試數據,從而擴大測試的覆蓋面,提高了測試的靈活性。除了以上方式實現參數化,還可以使用數據庫表作為數據源。在實際的測試工作中,我們可以根據需要靈活組合方式來進行使用。

【參考文獻】

[1]王磊.關鍵字驅動的自動化測試框架設計與實現[J].電子測試,2010,41(8):91-97.

[2]王蕾.基于數據驅動的軟件自動化測試框架系統的研究與實現EJ1[J].軟件導刊,2009,38(6):33-34.

[3]陳能技.QTP自動化測試技術進階[M].北京:電子工業出版社,2010.

[責任編輯:謝慶云]

Do while(i<=rowcount)

systemUtil.Run "D:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe","","",""

datatable.SetCurrentRow (i)

Dialog("Login").WinEdit("Agent Name:").Set DataTable("user", dtLocalSheet)

Dialog("Login").WinEdit("Password:").Set DataTable("pwd", dtLocalSheet)

Dialog("Login").WinButton("OK").Click

If Dialog("Login").Dialog("Flight Reservations").Exist (5) then

Dialog("Login").Dialog("Flight Reservations").winbutton("確定").Click

Dialog("Login").winbutton("cancel").Click

else

Window("Flight Reservation").Close

end if

i=i+1

Loop

datatable.ImportSheet語句是導入Excel外部文件到DataTable的Action1中,do-loop結構依然是為了使多組數據循環執行下去。

3.5 使用XML文件實現參數化

先在腳本根目錄中創建XML文件,將內容輸入文件中,輸入格式如圖6。

QTP腳本代碼如下:

set xmldoc=CreateObject("microsoft.xmldom")

TestPath = Environment("TestDir")&"\ login.xml"

xmldoc.load(TestPath)

Set Root=xmldoc.documentElement

For i = 0 To Root.childNodes.Length-1

systemutil.Run "D:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe","","",""

Set TestCases = Root.childNodes.Item(i)

For j = 0 To TestCases.childNodes.Length-1

Set TestCase = TestCases.childNodes.Item(j)

If cstr(TestCase.nodeName)="UserName" Then

Dialog("Login").WinEdit("Agent Name:").Set TestCase.text

end if

If cstr(TestCase.nodeName)="PW" Then

Dialog("Login").WinEdit("Password:").SetSecure TestCase.text End If

Next

Dialog("Login").WinButton("OK").Click

If Dialog("Login").Dialog("Flight Reservations").Exist (5) then

Dialog("Login").Dialog("Flight Reservations").winbutton("確定").Click

Dialog("Login").winbutton("cancel").Click

else

Window("Flight Reservation").Close

end if

wait(3)

Next

Set root=nothing

Set xml=nothing

QTP腳本中用到了雙層for語句,外層for語句用于多組數據的循環,內層for用于同組數據多個字段間的循環。

4 結論

通過參數化方式,從外部數據源或數據產生器讀取測試數據,從而擴大測試的覆蓋面,提高了測試的靈活性。除了以上方式實現參數化,還可以使用數據庫表作為數據源。在實際的測試工作中,我們可以根據需要靈活組合方式來進行使用。

【參考文獻】

[1]王磊.關鍵字驅動的自動化測試框架設計與實現[J].電子測試,2010,41(8):91-97.

[2]王蕾.基于數據驅動的軟件自動化測試框架系統的研究與實現EJ1[J].軟件導刊,2009,38(6):33-34.

[3]陳能技.QTP自動化測試技術進階[M].北京:電子工業出版社,2010.

[責任編輯:謝慶云]

猜你喜歡
參數化
基于主斷面參數的車身結構剛度鏈快速求解
參數化設計在當代景觀中的應用初探
從一道考研題談空間曲線積分的計算
Pro/E的三維往復壓縮機參數化模型庫的建立
一種懸架運動仿真快速建模方法研究
汽車科技(2016年6期)2016-12-19 20:32:56
基于參數化的散料輸送機械快速設計系統開發
參數化時代的數控加工與建造研究
股骨頸骨折內固定方式優選方法研究
基于Pro/ENGINEER的圓柱齒輪參數化虛擬設計
液壓挖掘機參數化姿態控制系統
主站蜘蛛池模板: 国产白浆在线观看| 欧美无专区| 新SSS无码手机在线观看| 国产成人精品男人的天堂| 国产自视频| 在线视频亚洲色图| 一区二区午夜| 亚洲精品国产精品乱码不卞| 国产精品视频白浆免费视频| 2021最新国产精品网站| 少妇精品网站| 国产精品一区二区在线播放| 久久综合九九亚洲一区 | 色综合五月婷婷| 久久一日本道色综合久久| 手机精品视频在线观看免费| 国产一区三区二区中文在线| 国产无码高清视频不卡| 亚洲综合亚洲国产尤物| 亚洲区欧美区| 2021亚洲精品不卡a| 国产精品 欧美激情 在线播放| 91欧美亚洲国产五月天| 日本人妻丰满熟妇区| 999国产精品永久免费视频精品久久| 欧美啪啪视频免码| 九九香蕉视频| 456亚洲人成高清在线| 久久成人18免费| 国产国产人成免费视频77777 | 中文字幕有乳无码| 无码精品国产dvd在线观看9久| 国产精品久久久免费视频| 91国内外精品自在线播放| 欧美精品一二三区| 中文字幕日韩丝袜一区| 中国美女**毛片录像在线| 人禽伦免费交视频网页播放| 亚洲无码视频一区二区三区| 婷婷五月在线| 91在线国内在线播放老师| 亚洲无线国产观看| 国产va免费精品| 亚洲欧美一区在线| 在线毛片网站| 国产一级在线播放| 亚洲天堂视频网站| 欧美影院久久| 在线欧美a| 国产一级在线播放| 色成人综合| 国产精品嫩草影院视频| 精品91视频| 一本久道热中字伊人| YW尤物AV无码国产在线观看| 精品亚洲国产成人AV| 97国产一区二区精品久久呦| 2022精品国偷自产免费观看| 亚洲精品va| 高清色本在线www| 亚洲成人精品| 亚洲日韩AV无码一区二区三区人| 国产成人精品一区二区不卡| 九九视频在线免费观看| 久久77777| 久久夜色精品国产嚕嚕亚洲av| 亚洲男人的天堂在线| 91啦中文字幕| 亚洲一区二区视频在线观看| 国产人人射| 国产成人av一区二区三区| 99热线精品大全在线观看| 青青草欧美| 亚洲免费黄色网| 国产精品香蕉在线观看不卡| 五月婷婷导航| 午夜福利无码一区二区| 国产精品香蕉在线观看不卡| 久草性视频| 亚洲Aⅴ无码专区在线观看q| 国产区在线观看视频| 毛片三级在线观看|