qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          QTP 錄制 回放 原理

          QTP 錄制 回放 原理 
             自動化測試可以基于代碼,例如junit,cppunit,可以基于協議,例如loadrunner,QTP是基于GUI界面的自動化測試工具。junit和cppunit屬于單元測試,loadrunner和QTP屬于系統測試。loadrunner用于系統的性能測試,QTP用于系統的功能測試。QTP是一款基于界面的功能自動化測試工具。
              LR錄制的是協議和數據包,QTP錄制的是鼠標和鍵盤的消息。QTP錄制回放時基于windows操作系統的消息機制。QTP在錄制時監聽應用程序的消息,監聽到之后把消息放到容器里,而另外的監聽程序則從容器中取出容器中的消息,并調用對用的API處理函數。QTP截取的是用戶對應用程序的操作,即錄制的是消息。對于C/S應用程序,在回放時QTP根據對象的句柄(handle)和腳本內容,調用API函數;對于B/S應用程序,在回放時基于DOM(document object model)來解析。
              RO(Runtime Object)和TO(Test Object)。RO是指GUI界面上的控件即對象本身,TO是QTP對象庫里的對象即在錄制時添加到對象庫的對象。RO是應用程序上實際的對象,因此擁有對象的所有的屬性和方法;TO是QTP在錄制時獲取的應用程序的對象的,而錄制時 QTP只保存了應用程序一部分常用的,能夠在回放時識別應用程序上對象的一部分屬性,因此TO對象擁有應用程序上對象的一部分屬性。另外QTP對象庫里保存的是TO對象。不過QTP可以使用Object Spy功能獲取應用程序的所有屬性值,或者可以通過TO對象的getROproperty()和getROpropertys()獲取應用程序的所有屬性值(呵呵,所有對象都沒有setROproperty()方法)。使用TO對象的setTOproperty()和getTOproperty()可以操作對象庫的TO對象。
              QTP的錄制原理:根據用戶在應用程序界面上的操作,QTP采用Object Identification Tools工具對被操作的對象進行識別,采用反編譯的原理看其屬于哪個插件類,從而進一步識別其屬于什么控件類,然后QTP把對應的控件類實例化一個對象,并把獲取的應用程序的一部分屬性值(足以識別對象?)賦給新建的對象,并添加到對象庫里即TO對象,而把用戶對對象的操作添加到腳本里面。
              QTP的回放原理:QTP 根據腳本中記錄下來的對象操作的順序進行回放。QTP從腳本中讀取到該對象,并根據對象的層次和名稱到對象庫中尋找相同名稱的測試庫對象,在測試庫找到相應的對象,獲得對象的屬性,根據對象庫中對象的屬性,在運行的應用程序中進行匹配,尋找運行時對象,找到后根據腳本中記錄的對該對象執行的動作和參數值。 

          posted on 2012-05-23 16:42 順其自然EVO 閱讀(835) 評論(0)  編輯  收藏 所屬分類: qtp

          <2012年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 连平县| 临澧县| 大理市| 桐庐县| 马公市| 新郑市| 寿光市| 崇仁县| 弋阳县| 哈尔滨市| 大方县| 忻城县| 明光市| 镇雄县| 宁津县| 扶沟县| 曲沃县| 册亨县| 吐鲁番市| 永泰县| 巴东县| 正蓝旗| 巴青县| 乌拉特后旗| 浠水县| 全州县| 靖州| 吕梁市| 原平市| 武夷山市| 宜宾县| 孟村| 正宁县| 嵩明县| 汉阴县| 山东省| 河曲县| 武鸣县| 赣州市| 宝鸡市| 任丘市|