• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

    2014-02-24 08:31:30蔣桂梅
    科技視界 2014年10期
    關(guān)鍵詞:測試用例測試數(shù)據(jù)腳本

    蔣桂梅

    (廣東女子職業(yè)技術(shù)學(xué)院 應(yīng)用設(shè)計系,廣東 廣州511450)

    0 引言

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

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

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

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

    數(shù)據(jù)驅(qū)動測試一般按以下步驟進(jìn)行[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 或當(dāng)前Action 表中。DataTable 是一種最容易實現(xiàn)參數(shù)化的方式。

    圖1

    圖2

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

    圖3

    圖4

    參數(shù)化在“Value Configuration Option”對話框中設(shè)置“Name”和“Value”框中進(jìn)行設(shè)置,環(huán)境變量實現(xiàn)參數(shù)化當(dāng)在同一個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,ForReading,False)

    Do while DataFile.AtEndOfLine<>true

    systemutil.Run "D:Program FilesHPQuickTest

    Professionalsamplesflightappflight4a.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é)尾,ifelse-endif 結(jié)構(gòu)是判斷對話框“Flight Reservations”的存在與否來推斷用戶和密碼是否輸入錯誤的情況處理,讓循環(huán)能繼續(xù)下一組數(shù)據(jù)的驗證。

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

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

    圖5

    圖6

    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 FilesHPQuickTest Professionalsamplesflightappflight4a.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 FilesHPQuickTest

    Professionalsamplesflightappflight4a.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ù)需要靈活組合方式來進(jìn)行使用。

    [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ù)進(jìn)階[M].北京:電子工業(yè)出版社,2010.

    猜你喜歡
    測試用例測試數(shù)據(jù)腳本
    酒駕
    安奇奇與小cool 龍(第二回)
    基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
    測試數(shù)據(jù)管理系統(tǒng)設(shè)計與實現(xiàn)
    數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
    電子測試(2018年14期)2018-09-26 06:04:24
    基于混合遺傳算法的回歸測試用例集最小化研究
    快樂假期
    基于自適應(yīng)粒子群優(yōu)化算法的測試數(shù)據(jù)擴增方法
    空間co-location挖掘模式在學(xué)生體能測試數(shù)據(jù)中的應(yīng)用
    體育科技(2016年2期)2016-02-28 17:06:21
    基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
    嘉禾县| 黎川县| 富宁县| 荃湾区| 原平市| 乌海市| 郴州市| 自贡市| 丘北县| 富源县| 华阴市| 顺昌县| 突泉县| 黄龙县| 巍山| 荣昌县| 射阳县| 丰都县| 柯坪县| 万年县| 闽清县| 土默特右旗| 松阳县| 中阳县| 航空| 中山市| 洛川县| 铁岭县| 酒泉市| 双流县| 新营市| 松滋市| 绍兴县| 周至县| 偃师市| 罗源县| 定日县| 台前县| 红安县| 安徽省| 泰来县|