• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    QTP描述性編程

    發布: 2011-4-20 09:15 | 作者: 不詳 | 來源: 領測軟件測試網采編 | 查看: 211次 | 進入軟件測試論壇討論

    領測軟件測試網

      dlgLogin = “Login”

      這樣腳本可以被修改為:

      Dim descEditLogin

      Set descEditLogin = Description.Create()

      descEditLogin("Class Name").Value = "Dialog"

      descEditLogin("Regexpwndtitle").Value = Environment.Value("dlgLogin")

      Dialog(descEditLogin).WinEdit("Attached text:=Agent Name:").Set "Holly"

      Dialog(descEditLogin).WinEdit("Attached text:=Password:").Set "Mercury"

      Dialog(descEditLogin).WinButton("Class Name:=WinButton", "text:=Cancel").Click

      當然,參數化的方式很多,這邊介紹的是使用環境變量

      總結:優點是當對象的一些屬性變更后,腳本更容易維護。比如說對于一個通用對象,比如save, reset, cancel等按鈕,一個頁面有3個,30個頁面就有90個對象,假如save變成保存,reset變成重置,cancel變成取消,那么對象庫就會產生很大的變動。而使用了描述性編程只需要在導入的XML文件中修改一個值就可以了。當然描述性編程的作用遠遠不止這些,這次只是拋磚引玉,希望大家共同進步。在QTP中使用描述性編程是一個提高QTP腳本利用率的很好的方式。通常QTP是通過對象庫來識別不同的對象,而描述性編程是QTP另外一種能夠識別對象的途徑,它不依賴于對象庫,通過增加一些對象的描述來識別對象的。

      QTP的工作原理有點類似人類社會的某些場景.比如一個朋友委托你帶東西給A,如果你認識A,這表明A的容貌特征以及一些聯系已經在你腦海有了印象,那么你只要找到了A的住所,那么這個任務就很容易完成了,如果你根本就不認識A,則這個任務就很難完成了. 那在QTP中有沒有一種方法,無須在對象庫中記錄任何關于某個對象的信息,就可以完成對該對象的操作呢,有.那就是描述性編程,其工作原理就象上面這個例子.

      在QTP中,有一按鈕對象,對它的操作如下:Dialog("Login").WinButton("OK").Click但是如果我們在對象庫中刪除這個對象后,執行這句話就會出錯,提示找不到對象,在這個時候,我們就可以通過描述性編程給他指定對象及其他的一些屬性,修改如下Dialog("Login").WinButton("text:=OK").Click

      上面腳本中,通過WinButton("text:=OK")明確告訴QTP去尋找文本屬性為OK的按鈕,于是QTP正確識別到該對象,順利的執行了腳本.這種不需要在對象庫中存儲對象的信息,就可以執行對象操作的方法,就是QTP中比較高級的用法:描述性編程(descrīptive progamming).描述性編程和傳統的QTP腳本的區別是:他把需要識別的對象的屬性從對象庫中轉移到了腳本里面,通過在腳本里面的特殊語法格式.來告訴QTP識別對象的方法.描述性編程更加靈活,因為他不需要經過錄制這個步驟,可以直接通過編程的方式操作任何一個你想操作的對象,只要你在測試腳本代碼里提供給QTP識別該對象的足夠信息

      描述性編程的語法格式如下:

      micClases("property1:=value1","property2:=value2")

      micClass標志某個對象的類別,括號里面通過jproperty:=value的形式告訴QTP識別該對象的必要屬性.我們繼續修改一下測試腳本:Dialog("Login").WinButton("text:=OK").Click修改后:Dialog("Login").WinButton("nativeclass:=Button","text:=OK").Click.F5執行,結果運行順利.這次修改,我們使用了一個通用的對象類WinObject,而把按鈕當作一個基本屬性nativeclass:=Button,同樣可以完成對該按鈕的操作

      由上面的敘述我們可以看出來,描述性編程沒有嚴格的要求,只要遵循一個原則:在代碼中告訴QTP足夠他識別該對象的屬性,QTP就可以不通過對象庫,而是通過描述性編程的方式完成對指定對象的操作.所以描述性編程沒有什么神秘的,他無非是把原來存儲在對象庫中的信息提到代碼中來了而已.

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    22/2<12

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>