亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        QTP數(shù)據(jù)驅(qū)動測試方法探討

        2014-07-02 20:54:55蔣桂梅
        科技視界 2014年10期
        關(guān)鍵詞:自動化測試參數(shù)化

        蔣桂梅

        【摘 要】在使用QTP進行自動化測試時,數(shù)據(jù)驅(qū)動起著舉足輕重的作用,進行數(shù)據(jù)驅(qū)動關(guān)鍵是實現(xiàn)腳本的參數(shù)化。筆者結(jié)合實例總結(jié)和歸納了多種進行數(shù)據(jù)驅(qū)動參數(shù)化的方式。

        【關(guān)鍵詞】QTP;自動化測試;參數(shù)化

        0 引言

        自動化測試是使用軟件來控制測試執(zhí)行過程,需要在適當?shù)臅r間使已形式化的手工測試過程自動化,最好的自動化測試工具是能夠?qū)⒐ぞ吲c測試需求達成一致,并且提供高度可自定義的工作流程和跟蹤報告能力[1]。

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

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

        1 數(shù)據(jù)驅(qū)動測試的步驟

        數(shù)據(jù)驅(qū)動測試一般按以下步驟進行[3]:

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

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

        3)設(shè)置迭代次數(shù),每次迭代選擇一行數(shù)據(jù)。

        2 參數(shù)化方法

        2.1 DataTable實現(xiàn)參數(shù)化

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

        2.2 環(huán)境變量實現(xiàn)參數(shù)化

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

        2.3 使用文本文件實現(xiàn)參數(shù)化

        先在腳本根目錄中創(chuàng)建txt文件,將內(nèi)容輸入文件中,輸入格式如圖4。

        QTP腳本代碼如下:

        Const ForReading=1

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

        Set FSO = CreateObject("Scripting.FileSystemObject")

        Set DataFile = Fso.OpenTextFile(FilePath,F(xiàn)orReading,F(xiàn)alse)

        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,",") '將行記錄以逗號為分隔符分開,并存入數(shù)組中

        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結(jié)構(gòu)是為了使多組數(shù)據(jù)循環(huán)執(zhí)行下去,直到文件結(jié)尾,if-else-endif結(jié)構(gòu)是判斷對話框“Flight Reservations”的存在與否來推斷用戶和密碼是否輸入錯誤的情況處理,讓循環(huán)能繼續(xù)下一組數(shù)據(jù)的驗證。

        2.4 使用excel表實現(xiàn)參數(shù)化

        先在腳本根目錄中創(chuàng)建xls文件,將內(nèi)容輸入文件中,輸入格式如圖5。

        QTP腳本代碼如下:

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

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

        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語句是導(dǎo)入Excel外部文件到DataTable的Action1中,do-loop結(jié)構(gòu)依然是為了使多組數(shù)據(jù)循環(huán)執(zhí)行下去。

        3.5 使用XML文件實現(xiàn)參數(shù)化

        先在腳本根目錄中創(chuàng)建XML文件,將內(nèi)容輸入文件中,輸入格式如圖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語句用于多組數(shù)據(jù)的循環(huán),內(nèi)層for用于同組數(shù)據(jù)多個字段間的循環(huán)。

        4 結(jié)論

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

        【參考文獻】

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

        [2]王蕾.基于數(shù)據(jù)驅(qū)動的軟件自動化測試框架系統(tǒng)的研究與實現(xiàn)EJ1[J].軟件導(dǎo)刊,2009,38(6):33-34.

        [3]陳能技.QTP自動化測試技術(shù)進階[M].北京:電子工業(yè)出版社,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語句是導(dǎo)入Excel外部文件到DataTable的Action1中,do-loop結(jié)構(gòu)依然是為了使多組數(shù)據(jù)循環(huán)執(zhí)行下去。

        3.5 使用XML文件實現(xiàn)參數(shù)化

        先在腳本根目錄中創(chuàng)建XML文件,將內(nèi)容輸入文件中,輸入格式如圖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語句用于多組數(shù)據(jù)的循環(huán),內(nèi)層for用于同組數(shù)據(jù)多個字段間的循環(huán)。

        4 結(jié)論

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

        【參考文獻】

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

        [2]王蕾.基于數(shù)據(jù)驅(qū)動的軟件自動化測試框架系統(tǒng)的研究與實現(xiàn)EJ1[J].軟件導(dǎo)刊,2009,38(6):33-34.

        [3]陳能技.QTP自動化測試技術(shù)進階[M].北京:電子工業(yè)出版社,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語句是導(dǎo)入Excel外部文件到DataTable的Action1中,do-loop結(jié)構(gòu)依然是為了使多組數(shù)據(jù)循環(huán)執(zhí)行下去。

        3.5 使用XML文件實現(xiàn)參數(shù)化

        先在腳本根目錄中創(chuàng)建XML文件,將內(nèi)容輸入文件中,輸入格式如圖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語句用于多組數(shù)據(jù)的循環(huán),內(nèi)層for用于同組數(shù)據(jù)多個字段間的循環(huán)。

        4 結(jié)論

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

        【參考文獻】

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

        [2]王蕾.基于數(shù)據(jù)驅(qū)動的軟件自動化測試框架系統(tǒng)的研究與實現(xiàn)EJ1[J].軟件導(dǎo)刊,2009,38(6):33-34.

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

        [責任編輯:謝慶云]

        猜你喜歡
        自動化測試參數(shù)化
        從一道考研題談空間曲線積分的計算
        Pro/E的三維往復(fù)壓縮機參數(shù)化模型庫的建立
        Hadoop性能測試自動化研究
        數(shù)據(jù)驅(qū)動和關(guān)鍵字驅(qū)動的研究與應(yīng)用
        軟件(2016年4期)2017-01-20 09:56:35
        淺談空調(diào)控制器自動化測試
        東方教育(2016年7期)2017-01-17 21:28:10
        基于多總線結(jié)構(gòu)的電路板測試系統(tǒng)設(shè)計研究
        價值工程(2016年32期)2016-12-20 20:32:01
        一種懸架運動仿真快速建模方法研究
        汽車科技(2016年6期)2016-12-19 20:32:56
        航空航天與國防電子新形勢下自動化測試系統(tǒng)的應(yīng)用
        價值工程(2016年29期)2016-11-14 02:40:46
        基于CTI—TET和SeleniumWebdriver的Web應(yīng)用自動化測試框架的設(shè)計與實現(xiàn)
        軟件工程(2016年8期)2016-10-25 15:45:45
        股骨頸骨折內(nèi)固定方式優(yōu)選方法研究
        国产福利97精品一区二区| 日韩国产欧美| 国产一级片毛片| 亚欧免费视频一区二区三区| 蜜桃在线观看免费高清完整版| 国产精品日本中文在线| 少妇又紧又爽丰满在线视频| 手机在线免费av网址| 亚洲第一页视频在线观看| 精品人妻av一区二区三区| 免费人成网站在线播放| 人妻系列无码专区久久五月天| 伊人久久大香线蕉综合av| 国产精品内射久久一级二| 曰韩无码无遮挡a级毛片| 18女下面流水不遮图| 久久久噜噜噜久久中文字幕色伊伊| 国产精品福利小视频| 一区二区三区四区在线观看视频| 国产亚洲精品在线播放| 免费国产自拍在线观看| 成人午夜特黄aaaaa片男男| 女人扒开下面无遮挡| 狠狠躁狠狠躁东京热无码专区| 在线观看极品裸体淫片av| 国产一品二品三区在线观看| 亚洲av成人片色在线观看| 熟女性饥渴一区二区三区| 夜色阁亚洲一区二区三区| 精品亚洲人伦一区二区三区| 91九色最新国产在线观看| 国产乱人偷精品人妻a片| 欧美jizzhd精品欧美| 国产在线不卡AV观看| 全程国语对白资源在线观看| 国产玉足榨精视频在线观看| 日韩精品久久久肉伦网站| 久久人人爽人人爽人人片av麻烦| 在线视频一区二区日韩国产| av网址大全在线播放| 第一九区另类中文字幕|