QTP - 描述性编程
描述性編程:
1、QTP的描述性編程能夠擺脫測試對象庫的限制,編寫出更為復雜、適應能力更強的測試腳本。
2、即不需要在倉庫晨定義,也能訪問和操作實際對象。
3、用描述性編程編寫的測試腳本在運行時,QTP會使用測試腳本中給出的對象描述來查找對象,查找的位置不是對象庫,而是與測試程序運行運行時QTP為其創建的測試對象版本過行匹配。
4、QTP提供了兩種描述性編程的開發方式,一種是“直接描述性”的方式,另一種是使用“Description”對象的方式。
?
例子:以Flight飛機訂票系統的登陸界面為測試頁面進行描述的
'錄制腳本 Dialog("Login").WinEdit("Agent Name:").Set "mercury" Dialog("Login").WinEdit("Password:").SetSecure "57e67e33ffdde8714dc762b2c1086326f59a21ca" Dialog("Login").WinButton("OK").Click Window("Flight Reservation").Close'初級描述性編程 Dialog("text:=Login").WinEdit("attached text:=Agent Name:").Set "mercury" Dialog("text:=Login").WinEdit("attached text:=Password:").SetSecure "57e67e33ffdde8714dc762b2c1086326f59a21ca" Dialog("text:=Login").WinButton("text:=OK").Click Window("regexpwndtitle:=Flight Reservation").close'在這里要注意有三點: '1)如果需要兩個以上特性來描述一個對象,需要使用逗號(,)對描述性語言進行分割 '2)使用:=來連接屬性和屬性值,并且:=兩邊不能有空格 '3)使用SPY查看對象的屬性名和屬性值(Tools -> Object Spy)'對象型描述性編程 Dim descEditLogin Set descEditLogin = Description.Create() descEditLogin("Class Name").Value = "Dialog" descEditLogin("Regexpwndtitle").Value = "Login" Dialog(descEditLogin).WinEdit("Attached text:=Agent Name:").Set "mercury" Dialog(descEditLogin).WinEdit("Attached text:=Password:").Set "Mercury" Dialog(descEditLogin).WinButton("Class Name:=WinButton", "text:=OK").Click
?
?
使用自定義的環境變量
在File>>Settings>>Environment中選擇user-defined,增加一個變量?dlgLogin = “Login”?這樣腳本可以被修改為:
Dim descEditLogin Set descEditLogin = Description.Create() descEditLogin("Class Name").Value ="Dialog" descEditLogin("Regexpwndtitle").Value =Environment.Value("dlgLogin")Dialog(descEditLogin).WinEdit("Attachedtext:=Agent Name:").Set "Holly" Dialog(descEditLogin).WinEdit("Attachedtext:=Password:").Set "Mercury" Dialog(descEditLogin).WinButton("ClassName:=WinButton", "text:=Cancel").Click?
當然,參數化的方式很多,這邊介紹的是使用環境變量
?
從XML文件導入環境變量,可以使用手工導入,也可以使用LoadFromFile自動導入
總結:
優點是當對象的一些屬性變更后,腳本更容易維護。
比如說對于一個通用對象,比如save, reset, cancel等按鈕,一個頁面有3個,30個頁面就有90個對象,
假如save變成保存,reset變成重置,cancel變成取消,那么對象庫就會產生很大的變動。
而使用了描述性編程只需要在導入的XML文件中修改一個值就可以了。
?
posted on 2016-09-24 21:47 Ethon 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/wakey/p/5904207.html
總結
以上是生活随笔為你收集整理的QTP - 描述性编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js深入理解构造函数和原型对象
- 下一篇: 微信开发接口调用(前端+.net服务端)